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