【问题标题】:RESTful on Play! 2.0 FrameworkRESTful 畅玩! 2.0 框架
【发布时间】:2012-12-17 04:15:33
【问题描述】:

很久以前的这个帖子: RESTful on Play! framework 说明了一种非常优雅的在 Play 上设计 RESTful Web 服务的方法! 1.x 与 Java。

我正在与 Play 合作! v2 并且想知道将这种方法迁移到新版本有多么容易。马上,我看到 render 方法不再存在,所以我想知道框架中是否有任何重大的架构更改会阻止使用此过程。

这篇文章: Play 2.0 RESTful request post-processing 说明了一些基于 2.0 的处理,但它是在 Scala 中完成的,我正在花时间解析它

【问题讨论】:

  • 看一下文档,现在做不到,但我稍后会向您展示一些简单的示例(或者也许其他人会......)无论如何您为什么认为那里;s也不再使用render 方法了吗? :)
  • 我只是把它拉到 Eclipse 中,渲染方法返回一个错误......所以我只是假设它不起作用。我猜你是说它在那里——让我仔细检查一下。

标签: java rest playframework-2.0


【解决方案1】:

Play 2.0 中的整个过程将非常相似,唯一的差异在于语法,请查看文档。

routes

# REST actions
GET     /user/:id    controllers.Rest.user(id: Int)
POST    /user        controllers.Rest.createUser
PUT     /user/:id    controllers.Rest.updateUser(id: Int)
DELETE  /user/:id    controllers.Rest.deleteUser(id: Int)

编辑:

当然您可以使用Accept 标头代替format 参数,但是参数只是...更易于设置。你也可以使用ie。 user.scala.xml 视图的名称,并在控制器中使用:return ok(views.xml.user.render(user).body());

我在 GitHub 上发布了该示例并进行了一些修复,因此您可以自己尝试一下:play-simple-rest

请注意,您需要保留 Rest.java 控制器(及其路由),而 Application 中的所有内容仅用于显示和演示(即在控制器中进行 GET/POST/PUT/DELETE 调用)。

【讨论】:

  • Biesior- 很棒的回复。太感谢了。一个问题:这里用户通过“格式”参数提供内容类型。如果您查看我在问题中发布的第一个链接,似乎响应类型是从请求中得出的。这个解决方案在这里仍然可行吗?
  • 你打算只将此 API 与 jQuery 一起使用还是与其他 - 3rd 方客户端一起使用?
  • 我根本不打算使用 jQuery - 现在使用几个 Jersey 客户端连接到它以用于不同的目的......但为什么这些服务会特定于任何客户端?跨度>
  • 另一个问题:您能告诉我为什么您将视图的 XML 版本命名为“xml.scala.html”吗?不应该是 user.scala.xml 之类的,位于 views.user 目录下吗?
  • 我问了关于 jQuery 的问题,因为我很懒,我不想在许多技术中准备示例;)查看我编辑的帖子,我将整个代码移至 github,因此您可以克隆和测试它。
猜你喜欢
  • 2011-05-21
  • 1970-01-01
  • 2012-08-01
  • 2012-05-10
  • 2012-04-25
  • 2015-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多