让我们说我有一个域名,客户可以"提交" (这是域中的用例)。是否最好将actor(customer)明确地包含在资源中,如下所示:
POST /customers/{id}/commit
或者更好地建模这样的新提交:
POST /commitments
是否重要,如果是,为什么?
答案 0 :(得分:2)
这取决于customer
和commitment
之间的关系。 Rest-ful URI应该是公开资源。如果承诺只在客户上下文中有意义(或者是客户的一部分),那么像这样的URI是合理的(它与您的相同,客户是主要资源,但请注意它不是使用动词,但是名词,这是更好的选择):
POST /customers/{customer_id}/commitments
但是,如果资源在逻辑上依赖于另一个资源(不同于客户),或者也可以在客户的上下文中使用(例如一盒承诺),或者它可以单独使用,那么它会更有意义设计围绕所述资源的URI,例如:
POST /commitmentbox/commitments
或只是
POST /commitments
我建议在此blog post中使用创建资源部分。它讨论了REST-ful URI设计中的多个最佳实践。另请参阅this one,其中讨论了更复杂的方案(customer
使orders
成为line items
。这两个帖子都非常好。