2016-07-05 217 views
-1

我閱讀了關於REST API的規範。這些原則:REST API與非REST API

  1. 一切資源
  2. 每個資源是可識別的由唯一識別
  3. 使用標準的HTTP方法

現在假設有詳細聯繫方式

id , owner, contact name,contact number, created At 

我想設計一個API來消費數據。我可以通過以下方式設計api。

爲了得到由所有者接觸

Get /contact/owner/david 

Get /getContactByOwner?ownerName="david" 

爲了寫入到表

post /contact/owner 

{contactDetail JSON in request param} 

post /addToContact?owner="john"&... 

哪種設計是RESTful?另一個有什麼問題?

+0

要求更有經驗的程序員的最佳實踐和意見是錯誤的嗎?僅用於糾正語法錯誤的stackoverflow? @downvoter。 –

+0

*「許多優秀的問題根據專家的經驗產生了一定程度的意見,但對這個問題的回答往往基於意見,而不是事實,參考或具體專業知識。」*此外,還有重複的內容:http ://stackoverflow.com/q/1619302/3001761 – jonrsharpe

+0

在我的問題中,我問哪個設計是寧靜的。如果兩者都很安靜,那麼如果支持原因,這也是一個有效的答案。每個可能性都可以由事實和參考文獻支持,其餘規範。我決不使用模棱兩可的語言。 @jonrsharpe。 –

回答

1

使用RESTful命名約定的經驗法則是使用名詞作爲您的端點(因爲您的動詞應限於get/post/put/delete /等)。所以在你的例子中,Get contact/owner/davidPost contact/owner將是更可取的。但是,如果您使用REST架構確實是真的,那麼您在技術上應該使用HATEOAS(超文本作爲引擎的應用程序狀態)幷包含XML或HTML響應中的鏈接,因此如果您使用的是JSON它可能更像REST,而不是完整的REST。在一天結束時,這都是一個偏好問題;只是嘗試使用任何適合應用程序用戶需求的方式,這種方式有點自我記錄和直觀。