什么是RESt?RESTFUL API 設計簡述
- Restful
- 方面講解
- HTTP常用方法
- CURD操作
- URL結尾是否應包含斜杠“/”
- RESTful API關鍵點(狀態碼)
- 結語
Restful
一種架構設計風格,提供了設計原則(介面規范)和約束條件,
方面講解
- 概念方面:
資料通信介面,用http協議通信,請求的回應值可以是xml,也可以是json(有些通常是xml,不可以json); - 核心方面:
基于HTTP上建立的一種介面規范,核心是資源; - 協議方面:
使用標準HTTP方法(get/put/post/delete)來抽象所有web系統的服務能力,并非個性化介面; - 安全控制方面:
代理服務器是可以定制安全策略,一般代碼代理服務器的是根據(URI,HTTP Method)來決定HTTP請求是不是合法,Delete這個方法我們可以給予拒絕 - 快取方面:
RESt:剛好使用標準的HTTP方法,所以可以使用get進行快取,
SOAP相關:(而所有經過快取服務器的SOAP訊息總是http post,所以快取服務器如果不解碼SOAP訊息體的話,根本沒法知道這個請求是不是要攔截的,所以也決定了SOAP的快取機制要比RESt復雜) - 總結:
REST系統的擴展能力高:統一介面抽象、代理服務器支持、快取服務器支持等等,并且,伴隨著網站引進的趨勢,還有rest本身設計實作的簡單性和強擴展性,后期極大有可能會成為Web服務的一個重要架構實踐,
HTTP常用方法
GRT:獲取資源
POST:新建資源
PUT:在服務器更新資源(向客戶端提供更改后的所有資源)
PATCH:在服務器更新資源(向客戶端提供更改的屬性)
DELETE:洗掉資源
PATCH:一般不用,用PUT
CURD操作
簡單資源URI:
GET /users -------------獲取用戶串列
GET /users/1 ----------獲取ID為1的用戶
POST /users ----------創建一個用戶
PUT /users/1 ----------替換ID為1的用戶
PATCH /users/1 ------修改ID為1的用戶
DELETE /users/1 ----洗掉Id為1的用戶
URL結尾是否應包含斜杠“/”
- 這是作為URL路徑中處理中最重要的規則之一,REST API不允許一個尾部的斜杠,
- 許多Web組件和框架將平等對待一下兩個url:
http://api.demo.com/user
http://api.demo.com/user/
但是,實際上URL的每一個字符都會計入資源的唯一身份的識別中,
兩個不同的URL映射到兩個不同的資源,
因此RESTFUL API必須生成和傳遞精確的URL,不能容忍任何的客戶端嘗試不精確的URL資源定位, - 用中杠“-”不用下杠“_”,防止看不見導致混淆、提高URL的可讀性,
- 另外,要注意一點,URL路徑對大小寫敏感的,例如“/user”與”/User”是兩個介面,還是規定url小寫比較好,
RESTful API關鍵點(狀態碼)
- 充分利用了heep語意-動詞
- 狀態碼
200:請求成功,回傳相應的資料,
3xx: 請求成功,但需要改變請求資源的方式,(比如會發生資源的永久重定向/單次重定向)
4xx: 請求有錯誤,此類錯誤應由客戶端負責,(比如說請求的引數不對或者是權限不足、資源不存在等)
5xx: 服務器內部錯誤,(跟你客戶端沒關系,是我服務器內部發生的問題,比如經常遇到的服務器回應超時)
結語
- RESTFUL是一種網路應用程式的設計風格和開發方式,基于Http,可以使用XML格式定義或JSON格式定義,
- RESTFUL適用于移送互聯網互聯網廠商,作為業務使能介面的場景,實作第三方OTT呼叫移動網路資源的功能,
- 動作型別為新增、變更、洗掉所呼叫的資源;
- RESTFUL特點包括:每一個URL代表一種資源,客戶端使用GET、POST、PUT、DELETE四個表示操作方式的動詞,對服務端資源進行操作,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/271647.html
標籤:其他
