RESTAPI中的首选资源设计?
假设我有一个客户可以“提交”的域(这是域中的一个用例)。是否最好在资源中明确包含参与者(客户),如下所示:RESTAPI中的首选资源设计?,rest,Rest,假设我有一个客户可以“提交”的域(这是域中的一个用例)。是否最好在资源中明确包含参与者(客户),如下所示: POST /customers/{id}/commit POST /commitments 或者,对新提交的创建进行如下建模会更好: POST /customers/{id}/commit POST /commitments 这有关系吗?如果有,为什么?这取决于客户和承诺之间的关系。Rest-ful URI应该公开资源。如果承诺仅在客户上下文(或是客户的一部分)中才有意义,那么像这
POST /customers/{id}/commit
POST /commitments
或者,对新提交的创建进行如下建模会更好:
POST /customers/{id}/commit
POST /commitments
这有关系吗?如果有,为什么?这取决于
客户
和承诺
之间的关系。Rest-ful URI应该公开资源。如果承诺仅在客户上下文(或是客户的一部分)中才有意义,那么像这样的URI是合理的(它与您的URI相同,客户是主要资源,但请注意,它不是使用动词,而是使用名词,这是更可取的):
但是,如果资源在逻辑上依赖于另一个资源(不同于客户),或者也可以在客户上下文之外使用(例如,一盒承诺),或者可以自己使用,那么围绕所述资源设计URI将更有意义,例如:
POST /commitmentbox/commitments
或者只是
POST /commitments
我建议您在本文中创建参考资料部分。它讨论了REST-ful URI设计中的多种最佳实践。另请参见讨论更复杂场景的地方(客户
制作具有行项目的订单
)。两个帖子都很好
祝你好运