我想在Play框架中使用RESTful
开发一个CRUD
应用程序。很遗憾,我找不到在Play路线中定义DELETE
和PUT
的方法。也许Play中只有POST
和GET
?
答案 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模块,用于使用非标准方法(如DELETE
或PUT
来定义路由,您需要使用所需的方法路线:
CONF /路线:
PUT /put-item controllers.Application.putItem()
无论如何要从GET
或POST
以外的浏览器方法中使用它们,你需要创建一个AJAX调用,这个主题有一个很大的step-by-step样本,无论如何你也可以通过定义请求type
$.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