RESTful URL - 基于资源模板创建资源

时间:2016-04-13 07:54:20

标签: rest http templates url

我正在研究RESTful API,而我刚刚遇到了一个设计问题。 我搜索了一下,但我找不到任何关于这个具体案例的内容。

我的API用于购买门票,因此我有两种类型的资源: ticketTemplates ticketPurchases

首先创建故障单模板(定义一种可购买的故障单,包括其名称,持续时间和价格),当有人购买故障单时(=在db中添加ticketPurchases行),它将始终基于故障单模板ID

票证模板已经实施了路线: / ticketTemplates

现在,我正在实施一条路线,以便根据故障单模板ID购买故障单,因此这张购买的故障单将继承模板名称,持续时间和价格。

我正在考虑(POST)/ ticketTemplates / [templateId] / ticketPurchases 来做这件事。

但是因为我必须能够独立于模板ID检索所有的ticketPurchases(所以,通过这样做:(GET)/ ticketTemplates / [templateId] / ticketPurchases ),我看到的唯一解决方案是:

  • 创作:(POST)/ ticketTemplates / [templateId] / ticketPurchases
  • 检索:(GET)/ ticketPurchases

  • 创建:(POST)/ ticketPurchases (并在请求正文中传递模板ID)
  • 检索:(GET)/ ticketPurchases

哪一个是最好的,RESTful说? 如果创建和检索资源的URL不一样,那就没关系,就像在我的第一个命题中一样?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

保持资源URL的完整性可能更有意义,让开发人员更有意义和更容易遵循,而不是绊倒其他资源并发现它应该去哪里

我会选择

创建:(POST)/ ticketPurchases(并在请求正文中传递模板ID)

正在检索:(GET)/ ticketPurchases

我自己超过前一个