通过自然键vs代理键识别REST资源

时间:2012-11-30 00:41:13

标签: rest

我正在开发一个REST API,我们拥有一个由自然键标识的订阅资源,也就是说,它们是根据其他资源的密钥来识别的。例如:

POST /subscriptions/user/123
POST /subscriptions/company/intel

这意味着我想为用户123创建订阅或为intel创建订阅。删除这些订阅“资源”类似:

DELETE /subscriptions/user/123
DELETE /subscriptions/company/intel

这是我不确定的地方。我正在创建订阅,但我正在根据其他自然键识别订阅:user/123company/intel。没有实际订阅id。这是一种正常的做事方式,还是应该为每个订阅创建一个代理键?

1 个答案:

答案 0 :(得分:0)

每个用户/公司可以有多个订阅吗?如果是这样,那么您将需要一个密钥来标识要删除的实际订阅。

如果没有,那么我认为这将是设计API的好方法。如果已经订阅,我希望您在POST上生成错误 - 用户应该使用PUT进行更新,是否正确?

如果我是GET /subscriptions/,是否会有订阅的用户和公司列表(/subscriptions/user/123, /subscriptions/company/intel)?

似乎合理。