【发布时间】:2012-06-19 18:18:35
【问题描述】:
我正在为我的应用程序设计一个宁静的 HTTP API。
该应用具有包含产品的类别。
我希望用户能够在一个类别中创建产品,如果该类别不存在,那么它将自动创建。所以不会有用于单独创建类别的 API(因为我不希望人们创建没有任何产品的类别)。
我不太明白我应该如何为此设计 API。通常的方法是:
1. Create a category:
POST /categories {"name": "Movies"}
2. Use the new category's id to create a product:
POST /categories/:id/products {"name": "The Matrix"}
既然我不想把第一个暴露给用户,我应该如何让他们直接创建产品?
【问题讨论】:
-
是否可以删除产品,或从类别中删除产品?如果是这样,如果从一个类别中删除所有产品会发生什么?在我看来@stinkymatt 的反应更好,因为类别列表似乎是一个计算资源,而不是你直接编辑的东西。
-
如果其中的所有产品都被删除,我考虑删除一个类别。当有人通过 DELETE /products/:id 删除某些内容时,我可以添加一个额外的逻辑,该逻辑在删除后检查类别是否为空。如果是这样,我将其删除。不直接处理类别:)