協議
使用 HTTP 協議與 API 進行通信,
域名
https://api.example.com
https://example.org/api/
版本
https://api.example.com/v1/
路徑
在RESTful架構中,每個網址代表一種資源(resource),所以網址中不能有動詞,只能有名詞,而且所用的名詞往往與資料庫的表名對應,一般來說,資料庫中的表都是同種記錄的"集合"(collection),所以API中的名詞也應該使用復數,
https://api.example.com/v1/animals
https://api.example.com/v1/employees
HTTP動詞
GET(SELECT):從服務器取出資源(一項或多項),
POST(CREATE):在服務器新建一個資源,
PUT(UPDATE):在服務器更新完整的資源,
PATCH(UPDATE):在服務器更新區域的資源,
DELETE(DELETE):從服務器洗掉資源,
HEAD:獲取資源的元資料,
OPTIONS:獲取資訊,關于資源的哪些屬性是客戶端可以改變的,
GET /zoos:列出所有動物園
POST /zoos:新建一個動物園
GET /zoos/ID:獲取某個指定動物園的資訊
PUT /zoos/ID:更新某個指定動物園的資訊(提供該動物園的全部資訊)
PATCH /zoos/ID:更新某個指定動物園的資訊(提供該動物園的部分資訊)
DELETE /zoos/ID:洗掉某個動物園
GET /zoos/ID/animals:列出某個指定動物園的所有動物
DELETE /zoos/ID/animals/ID:洗掉某個指定動物園的指定動物
POST /transaction?from=1&to=2&amount=500
過濾資訊
?limit=10:指定回傳記錄的數量
?offset=10:指定回傳記錄的開始位置,
?page=2&per_page=100:指定第幾頁,以及每頁的記錄數,
?sortby=name&order=asc:指定回傳結果按照哪個屬性排序,以及排序順序,
?animal_type_id:指定篩選條件
/authors/12?categories=2
/articles?published=true
回傳結果
GET /collection:回傳資源物件的串列(陣列)
GET /collection/resource:回傳單個資源物件
POST /collection:回傳新生成的資源物件
PUT /collection/resource:回傳完整的資源物件
PATCH /collection/resource:回傳完整的資源物件
DELETE /collection/resource:回傳一個空檔案
其他
- API的身份認證應該使用 OAuth 2.0 框架,
- 服務器回傳的資料格式,應該盡量使用JSON,避免使用XML,
參考:
RESTful API 最佳實踐
RESTful API 設計指南
理解RESTful架構
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/79523.html
標籤:其他
下一篇:資料結構導論之第四章樹
