假设我们正在制作发票 API。什么是更合适的资源?
GET
- 支付发票
- 到期发票
- all_invoices
或者
GET
- 发票/全部
- 发票/到期
- 发票/已付
附加问题:如果您的 API 允许将发票标记为已付款,那么合适的资源是什么?
PUT
//where 3 is the id
- 发票/3
或者
PUT
- pay_invoice/3
我会说:
GET /invoices
退回所有发票;GET /invoices?state=paid
where state
can bepaid
或due
。要将发票标记为已付款,您可以将相应的状态设置为您的资源,然后您只需使用PUT /invoices/<id>
.
或者,您可以修补您的资源:PATCH /invoices/<id>
. 这种方法需要一个差异state=paid
,例如。
这只是您要发送到 API 的内容(完整的资源,或者只是要应用的更改)的问题。
非 REST 解决方案可能是PATCH
对/invoices/<id>/paid
. 这不是纯 REST,但没关系。