我正在研究RESTful API,而我刚刚遇到了一个设计问题。 我搜索了一下,但我找不到任何关于这个具体案例的内容。
我的API用于购买门票,因此我有两种类型的资源: ticketTemplates 和 ticketPurchases 。
首先创建故障单模板(定义一种可购买的故障单,包括其名称,持续时间和价格),当有人购买故障单时(=在db中添加ticketPurchases行),它将始终基于故障单模板ID
票证模板已经实施了路线: / ticketTemplates
现在,我正在实施一条路线,以便根据故障单模板ID购买故障单,因此这张购买的故障单将继承模板名称,持续时间和价格。
我正在考虑(POST)/ ticketTemplates / [templateId] / ticketPurchases 来做这件事。
但是因为我必须能够独立于模板ID检索所有的ticketPurchases(所以,通过不这样做:(GET)/ ticketTemplates / [templateId] / ticketPurchases ),我看到的唯一解决方案是:
或
哪一个是最好的,RESTful说? 如果创建和检索资源的URL不一样,那就没关系,就像在我的第一个命题中一样?
提前感谢您的帮助。
答案 0 :(得分:0)
保持资源URL的完整性可能更有意义,让开发人员更有意义和更容易遵循,而不是绊倒其他资源并发现它应该去哪里
我会选择
创建:(POST)/ ticketPurchases(并在请求正文中传递模板ID)
正在检索:(GET)/ ticketPurchases
我自己超过前一个