RESTful API設計規範收集

2022-03-16 00:57:08 字數 2781 閱讀 5681

說明:其實沒有絕對的規範,達到90%即可。

理解restful架構:

restful api 設計指南:

github標準restful api:

教程收集:

以下內容**此篇文章)

uri

uri規範

request

method

delete:刪除資源

安全性與冪等性

相容

很多客戶只支援get/post請求,一般有兩種方式模擬put等請求

引數

method

get

過濾

?type=1&state=closed

排序

分頁

?limit=10&offset=10

單引數多欄位

使用,分隔,如

/users/1?fields=name,age,city

版本控制

三種方案:

在uri中加入版本: /v1/room/1

accept header:accept: v1

自定義 header:x-imweb-media-type: imweb.v1 (我們使用此方案)

自定義media-type參考資料github

狀態碼

成功

code

method

describe

200all

請求成功並返回實體資源

201post

建立資源成功

客戶端錯誤

code

method

describe

400all

一般是引數錯誤

401all

一般使用者驗證失敗(使用者名稱、密碼錯誤等)

403all

一般使用者許可權校驗失敗

404all

資源不存在(github在許可權校驗失敗的情況下也會返回404,為了防止一些私有介面洩露出去)

422all

一般是必要字段缺失或引數格式化問題

伺服器錯誤

code

method

describe

500all

伺服器未知錯誤

以上是常見的狀態碼,完整的狀態碼列表在這狀態碼

hateoas

在介紹hateoas之前,先介紹一下rest的成熟度模型

在介紹 hateoas 之前,先介紹一下 richardson 提出的 rest 成熟度模型。該模型把 rest 服務按照成熟度劃分成 4 個層次:

簡述

例子

分頁

request請求,查詢user,每頁顯示10條,從第10條開始顯示(第二頁)

/users?limit=10&offset=10

response

,

meta: ,,,

,]

}

}

_link返回了5個資源

許可權相關

如使用者查詢乙個訂單

普通使用者

request

/orders/1

response

,

meta: ,]}

}

_link返回兩個資源

許可權使用者

request

/orders/1

response

,

meta: ,,]

}}

此使用者擁有修改與刪除訂單的許可權,因此返回了3個資源

常用rel

reldescribe

self

資源本身,每個資源表述都乙個包含此關係

edit

delete

指向乙個可以刪除當前資源的鏈結

item

如果當前資源表示的是乙個集合,則用來指向該集合中的單個資源

collection

如果當前資源包含在某個集合中,則用來指向包含該資源的集合

related

指向乙個與當前資源相關的資源

first、last、prev、next

hateoas總結

由以上例子可以看出_link就是以hyperlink表述資源與資源之間的關係,這種方式使客戶端與服務端能很好的分離開來,只要介面的定義不變,客戶端與服務端就可以獨立的開發和演變。

restful api 設計規範

1.同一種資料的操作,只設定乙個url路由,也就是根據請求方法的不同來區分處理邏輯。可以基於fbv來通過請求方法的不同,處理不同的邏輯,也可以基於cbv來實現。兩種方式cbv更加簡潔,不需要判斷 2.網域名稱 為了對使用者使用的url和網頁中使用的介面api進行區別,1 子網域名稱的方式區分,例如 ...

RESTful API 設計規範

restful 是目前最流行的 api 設計規範,用於 web 資料介面的設計。1.1 動詞 賓語 restful 的核心思想就是,客戶端發出的資料操作指令都是 動詞 賓語 的結構。比如,get articles這個命令,get是動詞,articles是賓語。動詞通常就是五種 http 方法,對應 ...

Restful API設計規範

restful與技術無關,他是一種軟體架構的風格,rest是representational state transfer,中文翻譯為表徵狀態轉移。restful是以資源的角度來審視整個網路,將分布在網路各個節點的資源通過url進行標識,客戶端通近url來獲取資源的表徵,獲取表徵之後加上相應的動詞 ...