首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >播放框架2

播放框架2
EN

Stack Overflow用户
提问于 2013-08-13 19:44:19
回答 2查看 188关注 0票数 2

我有一个关于最佳实践的问题:在应用程序中处理GET和POST请求的最佳方法是什么?是使用两个单独的控制器方法(一个用于POST,另一个用于GET)还是一起处理。这两种选择是否有任何利弊?两者都是可行和可行的,我只想听听社会人士的意见。我使用的是play框架,但是这可以真正适用于任何MVC框架。下面,我创建了第二个选项的简单示例,仅供参考。

在路由文件中,定义了两条路由(确保POST位于GET之上,使其具有优先级),它们都指向相同的方法:

代码语言:javascript
复制
POST  /index           controllers.Application.index()
GET   /index           controllers.Application.index()

在应用程序控制器中,我们有一个方法:

代码语言:javascript
复制
public static Result index() {
    if (request().method().equals("POST")) {
       // bind, validate, return badRequest if hasErrors else capture and redirect
    }        
    return Results.ok(index.render("Home", Application.testForm));
}

你的想法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-13 19:53:38

我倾向于使用Rails式路由,这使得路由文件看起来像

代码语言:javascript
复制
GET    /foos          controllers.FooController.index()
GET    /foos/new      controllers.FooController.new_form()
POST   /foos          controllers.FooController.create()
GET    /foos/:id      controllers.FooController.show(id:Long)
GET    /foos/:id/edit controllers.FooController.edit_form()
PUT    /foos/:id      controllers.FooController.update(id:Long)
DELETE /foos/:id      controllers.FooController.delete(id:Long)

这使得处理Foo对象的大部分代码保持在相同的位置,并使用任何实用方法( closeby )。您可能可以制作一个更智能的播放路由器,自动设置这些路由,就像Rails的资源一样。

票数 3
EN

Stack Overflow用户

发布于 2013-08-13 19:57:20

通常,GETPOST会做其他的事情,因此,如果您使用典型的REST方法来完成它,您会感到更舒服。

代码语言:javascript
复制
GET     /objects/:id       controllers.Application.objFindSingle(id: Int)
GET     /objects           controllers.Application.objFindAll
PUT     /objects/:id       controllers.Application.objUpdate(id: Int)
POST    /objects           controllers.Application.objCreate
DELETE  /objects/:id       controllers.Application.objDelete(id: Int)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18217856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档