11

如何使用 play 开发 webservice?

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

4

1 回答 1

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 作为格式,或者格式在请求标头中设置正确,则您可以使用名为的普通 groovy 模板返回结果app/views/Application/sum.xml

要设置正确格式的路由,然后将以下行添加到您的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/

于 2010-12-22T19:42:45.723 回答