REST API中的首选资源设计?

时间:2015-04-20 17:34:10

标签: rest

让我们说我有一个域名,客户可以"提交" (这是域中的用例)。是否最好将actor(customer)明确地包含在资源中,如下所示:

POST /customers/{id}/commit

或者更好地建模这样的新提交:

POST /commitments

是否重要,如果是,为什么?

1 个答案:

答案 0 :(得分:2)

这取决于customercommitment之间的关系。 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。这两个帖子都非常好。

祝你好运!