Rest 播放框架积垢
我想使用游戏框架中的Rest 播放框架积垢,rest,playframework,playframework-2.0,crud,Rest,Playframework,Playframework 2.0,Crud,我想使用游戏框架中的CRUD开发一个RESTful应用程序。不幸的是,我找不到一种方法来定义游戏路线中的DELETE和PUT。可能只有POST和GET可用?您确定不能使用DELETE/PUT吗?医生不这么说 HTTP方法 HTTP方法可以是任何有效的方法 由HTTP(GET、POST、PUT、DELETE、HEAD)支持 播放2.x没有1.x分支已知的CRUD模块(幸运的是,IMHO),用于使用非标准方法(如DELETE或PUT)定义路由,您只需在路由中使用所需方法: 形态/路线: PUT
CRUD
开发一个RESTful
应用程序。不幸的是,我找不到一种方法来定义游戏路线中的DELETE
和PUT
。可能只有POST
和GET
可用?您确定不能使用DELETE/PUT吗?医生不这么说
HTTP方法
HTTP方法可以是任何有效的方法
由HTTP(GET、POST、PUT、DELETE、HEAD)支持
播放2.x没有1.x分支已知的CRUD模块(幸运的是,IMHO),用于使用非标准方法(如
DELETE
或PUT
)定义路由,您只需在路由中使用所需方法:
形态/路线:
PUT /put-item controllers.Application.putItem()
无论如何,要从除GET
或POST
之外的浏览器方法使用它们,您需要创建一个AJAX调用,本主题有一个很大的示例,无论如何,您也可以通过定义请求类型来使用common构建它
$.ajax({
type: "PUT",
url: "@routes.Application.putItem()",
data: { name: "John", location: "Boston" }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
如果要从web浏览器中使用PUT或DELETE,请不要忘记选项方法。以下是我为删除和更新所做的操作
POST /path/:id controllers.Controller.update(id: Integer)
POST /path/:id/delete controllers.Controller.delete(id: Integer)
在控制器中
public static Result delete(Integer id) {
Result result = null;
if(id>0){
//your code
}
else{
result = ok("invalid id");
}
return result;
}
它对我们的delete和put有效
如果您的目的只是使用RESTFul of play框架,而您使用的是Java,那么最好使用CXF或SpringWebServices或Jersey。Play是一个很棒的框架,但最适合Play的是scala定义这些框架的一个好方法是使用通配符(*)
这将允许您使用任何有效的http方法,包括您询问的方法
比如说,
* /items/{id} Items.display
in routes将允许GET/items/15或PUT/items/15。使用这样的通配符可以使路由定义更简单、更灵活。这是play scala应用程序中的一个路由器示例,它使用了最突出的http动词:
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)
您可以在这里查看整个play scala示例项目:感谢jQuery示例!(+1)