我陷入了 REST 的理论问题。
想象一个简单的产品库存 API。该数据库包含一个引用 a product
、 aquantity
和 a的动作集合status
。
我有一个先决条件:我不希望 API 用户操纵状态。状态值可以是reserved
或confirmed
。
首先,我想创建一个产品的预订。这是相应的 URL 路径和 HTTP 方法来表示:
[POST] /products/{product-id}/reservations
这将创建具有状态的运动reserved
并返回已创建运动的 id。
现在,我想确认这个预订:
[POST] /reservations/{movement-id}/confirmations
在语义上,在我看来,我创建了一个确认的预订。事实上,我只是改变了运动的状态。
所以,2个问题:
- 我的第二个 POST 是幂等的。我无法在 RFC 中找到信息,但是 POST 可以是幂等的吗?
- 你有没有更好的方式来表示确认?