2016-04-13 47 views
0

我正在使用RESTful API,而我刚刚遇到了一个设计问题。 我搜索了一下,但是我找不到有关这个特定情况的任何信息。RESTful URL - 基于资源模板创建资源


我的API是用来买车票,所以我有两种类型的资源:ticketTemplatesticketPurchases

首先创建票模板(定义可购票的类型,名称,持续时间和价格),当有人购买票时(=在数据库中添加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

哪一个最好,RESTfully说? 如果URLs与创建和检索资源的方式不同,就好像我的第一个提议那样吗?

非常感谢您的帮助。

回答

0

它可能更有意义,以保持资源的URL完整,更有意义和开发人员更容易遵守,而不是沿着其他资源的绊脚石,发现在它应该去

我会选择

创建:(POST)/ ticketPurchases(和通过模板ID的请求的主体中)

检索:(GET)/ ticketPurchases

我自己超过前一个

+0

它是有道理的,但我不知道这是一个不错的选择,顺其自然。感谢您的答复 ! – Enzo