RESTful實戰筆記二——REST API設計

統一接口REST VS RPC

REST使用HTTP協議的通用方法作爲統一接口的詞彙,方法信息都在HTTP方法裏;

RPC服務提供的方法信息在SOAP/HTTP信封裏。

REST方法設計

HTTP請求方法可以從安全性冪等性進行考慮:

安全性:外系統對該接口的訪問不會使服務器資源的狀態發生改變;

冪等性:外系統對統一REST接口訪問得到的資源狀態是相同的。

 

方法名 冪等性 安全性 補充
GET 冪等 安全 只讀的, 但是設計不良的API可能造成假GET
PUT 冪等 不安全 更新/添加資源,添加資源只有當客戶端創建連接請求的時候使用PUT
DELETE 冪等 不安全 刪除資源,可以返回void
POST 不冪等 不安全

添加資源;RESTful中爲POST(a),RPC中爲POST(p),需要先解析信封才能獲取真正方法

WebDAV 對HTTP1.1的擴展協議,增加了些協作方法,但是違背了REST統一接口受歧義。

Demo

REST方法測試Demo

REST資源設計

資源地址的設計是面向資源的,資源名稱應是準確描述該資源的名詞,資源地址應具有直觀的描述性。一個URI資源地址唯一對應一個資源,但是一個資源可以擁有多個RUI資源地址。

資源地址的設計良否涉及系統的可用性、可維護性和可擴展性等諸多方面的表現。

資源地址

資源地址具體可以分爲五個部分: scheme://host:port/path?queryString

資源地址路徑分解
元素 描述
scheme 協議名稱,通常是HTTP和HTTPS
host (DNS)主機名或IP地址
port 服務端口
path 資源地址,用“/“符號分隔邏輯上的層級結構
用來分隔資源地址和查詢字符串的符號
queryString

查詢字符串,方法作用域信息

使用”&“符號分隔查詢條件

使用逗號分隔有次序的作用域信息

使用分號分隔五次序的作用域信息

 

資源地址設計
功能 資源地址 說明
添加/創建

POST /books

PUT /books/{id}

 
刪除 DELETE /books/{id}  
修改/更新 PUT /books/{id}  
查詢全部 GET /books HTTP1.1  
主鍵查詢

GET /books/{id} HTTP1.1

GET /books?id=132456789

 
分頁作用域查詢

GET /books?start=0&size=10

GET /books/01,2002-12,2014

GET /books/restful;program=java;type=web

GET /books?limit=100&sort=bookname

起始頁0,頁條10;

逗號分隔次序:2002年1月到2014年12月

分號做並列查詢,查詢條件同級

每頁100條,按書名排序

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章