设计路由器& RESTful架构中的控制器

时间:2010-04-22 17:55:27

标签: model-view-controller rest routing controller

RESTful架构中控制器的简单示例建议每个控制器执行四个操作 - indexcreateupdatedelete - 与GET,POST相对应, PUT,并删除。但除此之外,我仍然发现了十几个小决定:

  • 资源集合(example.com/things)的控制器是否与单个资源(example.com/things/123)不同?
  • 对于单个资源,是否最好将id作为参数传递给操作,或者将其设置为控制器类中的成员变量?
  • 你如何进行URI路由?旧的经过验证的example.com/{controller}/{action}方法有点崩溃。
  • example.com/user/123/things等下属资源怎么样?你是否必须为这些明确定义每条路线,或者有没有办法写出一个好的一般规则?
  • 您是区分API请求和浏览器请求,还是通过相同的控制器和/或控制器方法引导它们?
显然,你可以用十几种不同的方式来做这些事情,但如果其他人已经解决了这个问题,我真的不想重新发明轮子。我正在寻找任何建议或者更好的一些好的教程来处理这些(以及其他相关的)实际问题来设计RESTful mvc框架。

1 个答案:

答案 0 :(得分:0)

我的控制器有方法Get(),Put(),Post(),Delete()等。我认为使用“操作条款”会混淆问题。

我总是为集合和单个事物创建一个不同的控制器。对我来说,他们是非常不同的资源,我希望HTTP方法做不同的事情。

路由我的做法与大多数框架不同。我不是在整个网址上匹配,而是在逐个网段的基础上匹配。它类似于SubResources在JAX-RS中的工作方式

对于只有少量不同资源的服务,那么使用正则表达式样式url模式匹配就可以了。我刚刚发现,一旦你开始处理数百种资源,它就会崩溃。

相关问题