大多数 REST 教程将资源安排如下:
GET /car/ -> list of cars
GET /car/<id>/ -> info about specific car
POST /car/ -> create a new car
但是在构建用于浏览器的 Web 应用程序时,缺少一个很少讨论的链接,在您可以 POST 到 /car/ 之前,您需要获取一个用于创建新资源(汽车)的表单。此表单的 URL 应该是什么?
我通常使用:
GET /car/new/ -> form for creating a new car
POST /car/new/ -> redirect to /car/<id>/ if item is created else show form with invalid fields highlighted
但根据http://www.slideshare.net/Wombert/phpjp-urls-rest这不是一个好的 REST URL。我可以看到为什么它不是一个好的 REST,因为“new”实际上是用作动词而不是资源,但是表格应该在哪里,因为GET /car/
已经用于列出汽车,所以你不能GET /car/
用于表格对于新车。
简而言之,我的问题是:“‘创建资源表单’的 RESTful URL 是什么?”
稍微相关一点,即使在 Web 服务中,有时依赖客户端提前知道模式并不总是明智的,因此即使在 Web 服务中,也可能需要一种方法让客户端请求资源的当前架构。AFAICS,这与需要获取创建表单的类似情况(即,表单有点像描述如何构造 POST 查询以创建资源的模式)。我的思路在这里正确吗?