2010-12-22 64 views
11

如何使用play开发webservice?如何使用游戏!开发webservice的框架?

我在官方网站上找不到任何文件。

+0

你为什么要博客? Play不是一个Web服务框架,你为什么要使用它? – skaffman 2010-12-22 19:22:21

+6

由于其严格的REST特性,Play实际上非常有能力构建Web服务,而且它使用的MVC模式使得实现起来非常简单。为什么要为Web服务使用Web应用程序框架的一个例子是用于构建也包含Web服务(例如,Twitter及其API)的Web应用程序。 – Codemwnci 2010-12-22 19:47:05

回答

26

真的很简单。

Play带有许多方法,您可以使用这些方法将您的操作作为Web服务公开。

例如

render() 
renderJSON() 
renderXML() 

这些都可以用来以特定的方式来呈现数据。

如果你有一个Web服务,让我们假设一个RESTful Web服务,如果您想返回两个数字的总和,你可以通过以下方式

public class Application extends Controller { 

    public static void sum(Float num1, Float num2) { 
     Float result = num1 * num2; 
     render(result); 
    } 
} 

这样做,如果你的路线设置为使用XML作为格式,或格式的请求头设置正确,你再使用一个名为app/views/Application/sum.xml

要设置的路线正常Groovy的模板来正确地格式化返回的结果,然后将下面的行添加到您的route文件

然后
GET /webservices/sum     Application.sum(format:'xml') 

的sum.xml看起来像

<response> 
    <sum>${result}</sum> 
</response> 

同样的概念也适用于JSON。

如果您不想使用groovy模板,您可以使用renderJSON/renderXML方法简单地创建XML或JSON,但这确实意味着您要在您的控制器中构建演示逻辑,这是不好的做法。

作为一个子注,如果你想消费web服务,那么你使用play.libs.WS类。我已经写了关于如何做到这一点

http://playframework.wordpress.com/2010/08/15/web-services-using-play/