REST API的正确资源名称

时间:2012-08-15 18:26:11

标签: api rest

假设我们正在制作发票API。什么是更合适的资源?

GET

  • paid_invoices
  • due_invoices
  • all_invoices

GET

  • 发票/所有
  • 发票/因
  • 发票/付费

其他问题:如果您的API允许将发票标记为已付款的适当资源?

PUT //where 3 is the id

  • 发票/ 3

PUT

  • pay_invoice / 3

1 个答案:

答案 0 :(得分:0)

我会说:

  • GET /invoices会返回所有发票;
  • 过滤器可以返回付费到期发票:GET /invoices?state=paid其中state可以是paid或{{1} }。

要将发票标记为已付款,您可以将相应的状态设置为您的资源,然后您只需使用due更新(实际替换)。

或者,您可以修补资源:PUT /invoices/<id>。这种方法需要像PATCH /invoices/<id>这样的差异。

这只是您要发送给API的问题(完整的资源,或者只是要应用的更改)。

非REST解决方案可能是对state=paid执行PATCH请求。这不是纯粹的REST,但没关系。