RestfulAPI定義和設計

2021-08-18 12:16:33 字數 1429 閱讀 2385

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 是目前比較成熟的一套網際網...