2016-04-25 28 views
0

現在,我開始使用expressjs開發我的web apis。 我在考慮哪個鏈接兩個資源的好方法(數據庫中已經存在兩個資源)。哪種鏈接休息apis的好方法

例如,我有兩個實體:companyusercompany & user是一對多的關係。

所以,用戶實體應該包含company_id。 有一些方法可以將用戶鏈接到公司。

案例1:

PUT /users/{user_id} 

Request: 
{ 
    "company_id": "abc" 
} 

案例2:

PUT /company/{company_id}/users/{user_id} 

我,因爲當關系發展如deparment & user對未來充滿的情況下1的話,我也不需要擴大我網址來支持這些情況。但我不知道它是否遵循了設計寧靜apis的最佳實踐。

回答

2

兩者都可以接受。我更喜歡前者,因爲它賦予了靈活性。在案例2中,如果您想查找所有姓'史密斯'的用戶,而不管他們屬於哪家公司,那麼您的運氣不好。

0

我會在任何情況下都會推薦後者。 您可以檢查HTTP RFC和像一些好文章:

的總體思路是,將資源通過它的URL標識(該例外它與版本控制一樣,但現在我們不關注它),並且當您使用URL /company/{company_id}/users/{user_id}將PUT應用於資源時,應該對此特定資源執行操作。當通過解決一個資源而改變另一個資源時,它並不直觀和透明。