Play Framework CRUD

时间:2012-12-12 18:08:21

标签: rest playframework playframework-2.0 crud

我想在Play框架中使用RESTful开发一个CRUD应用程序。很遗憾,我找不到在Play路线中定义DELETEPUT的方法。也许Play中只有POSTGET

6 个答案:

答案 0 :(得分:6)

您确定不能使用DELETE / PUT吗?文档说不然。

  

HTTP方法

     

HTTP方法可以是任何有效的方法   HTTP支持(GET,POST,PUT,DELETE,HEAD)。

http://www.playframework.org/documentation/2.0.4/JavaRouting

答案 1 :(得分:5)

播放2.x没有1.x分支(幸运的是恕我直言)已知的CRUD模块,用于使用非标准方法(如DELETEPUT来定义路由,您需要使用所需的方法路线:

CONF /路线:

PUT     /put-item     controllers.Application.putItem()

无论如何要从GETPOST以外的浏览器方法中使用它们,你需要创建一个AJAX调用,这个主题有一个很大的step-by-step样本,无论如何你也可以通过定义请求type

,使用通用jQuery.ajax()构建它
$.ajax({
  type: "PUT",
  url: "@routes.Application.putItem()",
  data: { name: "John", location: "Boston" }
}).done(function( msg ) {
  alert( "Data Saved: " + msg );
});

答案 2 :(得分:2)

定义这些的好方法是使用通配符(*) 这将允许您使用任何方法有效的http方法,包括您询问的那些方法。

例如,

*  /items/{id}               Items.display
路线中的

将允许GET / items / 15或PUT / items / 15。使用这样的通配符可以使您的路径定义更简单,更灵活。

答案 3 :(得分:1)

如果要从网络浏览器中使用PUT或DELETE,请不要忘记OPTIONS方法。

答案 4 :(得分:0)

以下是我为删除和更新所做的工作

SELECT *
FROM me_fees
WHERE year= '2015' &&
month = '8' && register_no= '9' && year
BETWEEN '2015'
AND '2015' &&
month BETWEEN '6'
AND '12'

在Controller中

month

它适用于我们删除和放置

如果你的目的只是使用RESTFul的play框架并且你使用的是Java,那么最好使用CXF或Spring webservices或Jersey。 Play是一个很棒的框架,但最适合玩的是scala

答案 5 :(得分:0)

这是一个使用最突出的http动词的播放scala应用程序中的示例路由器:

GET     /                                    controllers.Application.listProjects
PUT     /projects/:name                      controllers.Application.createProject(name: String)
GET     /projects/list                       controllers.Application.listProjects
GET     /projects/:id                        controllers.Application.projects(id: Long)
PUT     /projects/:id/:name                  controllers.Application.addTaskToProject(name: String, id: Long)
PATCH   /tasks/:id                           controllers.Application.modifyTask(id: Long, color:Option[String] ?= None)

您可以在此处查看整个游戏scala示例项目:https://github.com/nemoo/play-slick3-example