2012-10-24 27 views
2

例如,創建一個對象,更新對象,按ID檢索對象,按名稱檢索對象。有人可以指向我的web服務URI命名約定嗎?

POST to: /object/create 
POST to: /object/update 
GET to: /object/getById?id={0} 
GET to: /object/getByName?name={0} 

或者是否有一種約定可能/object/create/create或類似?

我試圖創建一個統一的web服務風格。

+1

http://en.wikipedia.org/wiki/Representational_state_transfer – SLaks

+0

確實我想跟隨休息,這是一些小細節,雖然想要通過ID或名稱獲取項目,這意味着您不能簡單地執行GET相同的網址 - 也是哪些部分由參數完成,哪些是作爲地址的一部分完成的,例如。 'object/3 /'或'object /?id = 3'或類似。我不確定。 – NibblyPig

回答

2

有很多方法可以對URI進行建模,您會在Web上看到許多令人困惑的引用,而不是它們錯誤,但大多數在他們自己的上下文中都是正確的。

http://soaprobe.blogspot.co.uk/2012/10/soa-rest-service-naming-guideline.html

http://architects.dzone.com/news/common-rest-design-pattern

在您的例子可能是你可以模擬這種方式。

POST到:/對象 - 這將創建對象

PUT到:/對象 - 這將更新對象

GET到:/對象ID = {0? } - 這將通過ID獲取對象

GET到:/對象名= {0} - 這將更新由名稱

對象?
+0

這看起來不錯,如果你想在同一時間發佈多個對象,你會怎麼做,例如你正在維護一本字典,你希望能夠創建/更新單個單詞,而且還要將一組單詞作爲批量工作?發佈到:/對象可能? – NibblyPig

+0

資源集合本身是一個單獨的資源:)所以/對象是好的。這意味着當你在理想情況下完成對象時,你想看到完整的對象列表,你可以做基於索引的GET等等,所有REST的優點。 – shivaspk

相關問題