2014-02-18 77 views
2

假設我的應用程序中有不同的模型:場地,訪客,預訂,購買,表格。嵌套這些關係的「正確」方法是什麼?如...RESTful API關係,端點和方法的最佳實踐

  • 場地有很多客人,通過保留
  • 有客人在場地
  • 預定有很多客人很多商品來說,通過保留
  • 場地有很多保留
  • 場地有很多表

...等等。

我應該(與標準,REST風格的CRUD)...

/api/venues/{venue_id}/reservations 
/api/venues/{venue_id}/reservations/{reservation_id}/purchases 
/api/venues/{venue_id}/reservations/{reservation_id}/guests 
/api/venues/{venue_id}/tables 

還是應該保留,採購,客人都可以在一個單獨的資源?比如,

/api/reservations 
/api/tables 

並接受參數,如guest_id,ITEM_ID(購買),table_id的(一個表),等..

,我應該怎麼做,如果我想查看單個關係中的資源?

我意識到這並沒有「硬性規定」,但從長遠來看,最佳做法是什麼?爲什麼?

+0

你好,歡迎來到本站!我建議你看看這個 - http://stackoverflow.com/help/how-to-ask - 當你有一個特定的與編程相關的問題時回頭看看。正如你寫的,你在這裏的職位非常廣泛和基於意見,可以被視爲脫離主題。 – admdrew

回答

1

我認爲應該有一種方法可以從API中獲取數據。 所以你選擇一種或另一種方法。

讓我們考慮guests

,如果你會去

/api/venues/{venue_id}/reservations/{reservation_id}/guests 
每次我們需要得到一個預約的客人時間

,該venue_id是需要 。更有甚者,當我們需要獲得特定客戶

/api/venues/{venue_id}/reservations/{reservation_id}/guests/{guest_id} 

venue_idreservation_id要求兩者。

這是嚴格必要的嗎?那麼,爲了授權,也許它是 是。但

/api/guests/{guest_id} 

是更「安全」和靈活的方法,這可能需要或在特定情況下並不需要 venue_idreservation_id