【问题标题】:Designing router & controllers in RESTful architecture在 RESTful 架构中设计路由器和控制器
【发布时间】:2011-02-11 04:49:13
【问题描述】:

RESTful 架构中控制器的简单示例建议每个控制器有四个操作——indexcreateupdatedelete——对应于 GET、POST、PUT 和 DELETE。但除此之外,我还发现了十几个小决定:

  • 您对资源集合 (example.com/things) 的控制器与对单个资源 (example.com/things/123) 的控制器是否不同?
  • 对于单个资源,最好将 id 作为参数传递给操作,还是将其设置为控制器类中的成员变量?
  • 如何进行 URI 路由?久经考验的旧 example.com/{controller}/{action} 方法有点分崩离析。
  • example.com/user/123/things 这样的下级资源呢?您是否必须为这些明确定义每条路线,还是有办法编写一个好的通用规则?
  • 您区分 API 请求和浏览器请求,还是通过相同的控制器和/或控制器方法引导它们?

显然,您可以通过十几种不同的方式来解决这些问题,但如果其他人已经解决了这个问题,我真的希望不必重新发明轮子。我正在寻找任何建议或更好的一些好的教程来处理这些(和其他相关的)设计 RESTful mvc 框架的实际问题。

【问题讨论】:

    标签: model-view-controller rest routing controller


    【解决方案1】:

    我的控制器有 Get()、Put()、Post()、Delete() 等方法。我认为使用“动作术语”会混淆问题。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-24
      • 2012-12-17
      • 2014-09-08
      • 1970-01-01
      • 2012-12-24
      • 2012-11-05
      • 2015-04-30
      相关资源
      最近更新 更多