2013-10-23 19 views
1

快速問題 - 我昨天在閱讀有關RESTful服務的內容,有人問爲什麼SOAP不是RESTful。答案是SOAP不像REST所要求的那樣具有'接口的一般性'屬性。是否將自定義路由添加到WEB API使其成爲非REST?

然後我突然想到,我已經添加自定義路線,我的Web API,像這樣: Custom Routing with ASP.NET Web API

通過這樣做 - 我做了我的網絡API不通用,從而使服務非RESTful,右?這並不是什麼大不了的事情,我只是想知道我是否正確掌握了這些概念。

回答

2

那麼其他人需要你單獨確定消退,而不是對他們採取行動。 例如,您可能對某人有一個操作addComment,您的路線是

POST persons/2/addComment 這會使它不安寧。要做到這一點,最理想的方式是: POST persons/2/comments 刪除評論DELETE persons/2/comments/{commebntid}

所以,如果你從這個變化,你的服務變成非寧靜。很難做出完全平靜的界面。 例如,如果您有一個對象賬戶,那麼您直接增加或減少餘額 accounts/2。您可能會撤回並存款。 POST accoints/2/withdraw。在休息時,您需要在減少餘額(PUT)之後將餘額作爲參數傳遞。有些情況下你不想這樣做。你可能不想讓世界知道用戶的平衡。那麼你不能輕鬆使用put。您必須創建一個新實體:transaction並創建交易並根據交易計算帳戶餘額。

我不喜歡通用的API。由於實體和操作不同,你不能使用amazons api和facebooks api。不要太在意泛化。只要理解RESTful的方式,看看你能否實現它。如果你不得不調整一下,這很好

+0

謝謝,我們在同一頁。我有類似於/ timetable/getTimeTable的東西 - 因此非寧靜。 –

+0

是寧靜的網址是時間表/ {id} –

+0

@spike我完全推薦閱讀RESTful服務食譜 - 它可以幫助您決定採取哪種方法,同時確定各種權衡:http://www.amazon .co.uk/REST式-服務-食譜-Subbu-Allamaraju/DP/0596801688/REF = sr_1_1?即= UTF8&QID = 1382528170&SR = 8-1&關鍵字=休息+食譜 – ireddick

相關問題