2016-04-13 56 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