【问题标题】:What is the better url structure for RESTful application?RESTful 应用程序的更好的 url 结构是什么?
【发布时间】:2017-03-01 13:23:29
【问题描述】:

我们有一个 Laravel 后端和 Angular2 作为前端。

哪种 URL 结构更好:

what/:id/action
示例:course/2/edit

(我在大多数博客中都看到过这个版本,它是Laravel's default convention

what/action/:id
示例:course/edit/2

这个版本似乎对“重叠”有更好的保护
what/:id/action 如果我有
课程/类别 会遇到问题,因为 类别 将落入 :id 槽。


所有这些 URL 共享相同的方法 (GET),因此结构本身需要足够好。

重叠问题可以通过按正确顺序排列路线或使用
pathMatch: 'full' 来解决,但这意味着模式本身还不够好。

抱歉,有点主观的问题,并提前感谢您的时间。

【问题讨论】:

  • course/2/edit 将是最好的 url 结构。
  • @Muthu17,是的,目前看来是这样。但我很困惑为什么 Laravel 有另一种结构,因为它是惯例......
  • 默认约定是关于此问题的最佳约定。这很简单,而且很重要。没有任何形式的“真实”重叠。坚持下去。
  • 我更喜欢默认约定(我过去曾使用过它)。但是如果我不管理 URL 的顺序,"categories" 是否会被视为默认模式中的 :id 参数?
  • 我并没有在 url 中看到“action”,主要是资源(即名词)。现在你可能有 what/:id/editor 来访问“编辑器”,但动词是由 HTTP 请求决定的,而不是 url。

标签: laravel api angular restful-url


【解决方案1】:

最好的方法是使用标准的RESTful controllers and routes

GET         /photos
GET         /photos/create
POST        /photos
GET         /photos/{photo}
GET         /photos/{photo}/edit
PUT/PATCH   /photos/{photo}
DELETE      /photos/{photo}

【讨论】:

  • 是的,我知道这一点,但我提到的问题呢?另一种方法似乎可以更好地处理重叠,不是吗?
  • @Mihailo 只需使用正确的路线顺序,您将永远不会遇到这个问题。
  • @Mihailo 谢谢,我已经解决了这个问题。 store 必须被删除。 )
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-27
  • 2020-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-23
  • 1970-01-01
相关资源
最近更新 更多