soap webservice和restful的區別?
效率和易用性:
soap由於各種需求不斷擴充其本身協議的內容,導致soap處理方面的效能有所下降。同時在易用性方面以及學習成本上也會有所增加。
restful
restful由於其面向資源介面設計以及操作抽象簡化了開發者的不良設計,同時也最大限度的利用了http最初的應用協議設計理念。
安全性:
restful對於資源服務介面來說很合適,同時特別適合對於效率要求很高,但是對於安全要求不高的場景。
soap的成熟型可以給需要提供給多開發語言的,對於安全性要求較高的介面設計來帶福利。所以我覺得純粹說什麼設計模式將會佔據主導地位沒有什麼意義,關鍵還是要看應用場景。
如何設計restfulapi?
1、資源路徑(url)
在restful架構中,每乙個**代表一種資源,所以**中不能有動詞,只能由名詞。一般來說api中的名詞應該使用是複數。
舉例:有乙個api提供動物園資訊
2、http動詞
對於資源的操作(crud),由http動詞(謂詞)表示。
get :從伺服器獲取資源
post:在伺服器新建資源
put:在伺服器更新資源(在客戶端提供改變後的完整資源)
patch:在伺服器更新資源(客戶端提供改變的屬性)
delete:從伺服器刪除資源
舉例:post/zoos:新建乙個動物園
get/zoos/id:獲取某個指定的動物園
put/zoos/id:更新某個指定的動物園
delete/zoos/id:刪除某個動物園
3、過濾資訊
如果記錄很多,伺服器不可能都將他們返回給使用者,api應該提供引數,過濾返回結果。
舉例:?offset=10:制定返回記錄的開始位置
?anima_type_id=1:制定篩選條件
4、狀態碼
伺服器向使用者返回的狀態碼和提示資訊,使用標準http狀態碼
舉例:200 成功
204 刪除成功
403 無法訪問
5、錯誤處理
如果狀態碼是4xx或者5xx,就應該向使用者返回出錯資訊。一般來說,返回的資訊中將error作為鍵名,出錯資訊作為鍵值即可;
舉例:「error」:」引數錯誤」
6、返回結果
針對不同操作,杜**向使用者返回的結果應該符合一下規範:
get/collections:返回資源物件的列表(陣列)
get/collections/identity:返回單個資源物件
post/collections:返回新生成的資源物件
put/collections/identity:返回完整的資源物件
patch/collections/identity:返回被修改的屬性
delete/collections/identity:返回乙個空文件
RESTful API 設計指南
網路應用程式,分為前端和後端兩個部分。當前的發展趨勢,就是前端裝置層出不窮 手機 平板 桌面電腦 其他專用裝置 因此,必須有一種統一的機制,方便不同的前端裝置與後端進行通訊。這導致api構架的流行,甚至出現 api first 的設計思想。restful api是目前比較成熟的一套網際網路應用程式的...
RESTful API 設計指南
網路應用程式,分為前端和後端兩個部分。當前的發展趨勢,就是前端裝置層出不窮 手機 平板 桌面電腦 其他專用裝置.因此,必須有一種統一的機制,方便不同的前端裝置與後端進行通訊。這導致api構架的流行,甚至出現 api first 的設計思想。restful api是目前比較成熟的一套網際網路應用程式的...
RESTful API 設計指南
原文 網路應用程式,分為前端和後端兩個部分。當前的發展趨勢,就是前端裝置層出不窮 手機 平板 桌面電腦 其他專用裝置.因此,必須有一種統一的機制,方便不同的前端裝置與後端進行通訊。這導致 api 構架的流行,甚至出現 api first 的設計思想。restful api 是目前比較成熟的一套網際網...