REST API 的關(guān)鍵概念有哪些?
今天給大家?guī)?lái)一份 REST API 關(guān)鍵概念的小抄,專(zhuān)治不明白,還可以學(xué)技術(shù)英語(yǔ)。
圖片
REST,全稱(chēng) Representational State Transfer (表現(xiàn)層狀態(tài)轉(zhuǎn)移)。它是一種軟件架構(gòu)風(fēng)格,而不是標(biāo)準(zhǔn),所以只提供了一組設(shè)計(jì)原則和約束條件。
RESTful API 就是滿足 REST 風(fēng)格的 API。這里 RESTful是形容詞。
REST 的六項(xiàng)原則是由 Roy Fielding 博士定義的,它們構(gòu)成了 RESTful API 的基礎(chǔ)。REST 的核心原則定義了設(shè)計(jì)良好的 RESTful 系統(tǒng)應(yīng)如何運(yùn)行:
01 客戶端-服務(wù)器架構(gòu)
客戶端(請(qǐng)求數(shù)據(jù))和服務(wù)器(提供數(shù)據(jù))獨(dú)立運(yùn)行,增強(qiáng)了可擴(kuò)展性和可移植性。
02 無(wú)狀態(tài)
客戶端向服務(wù)器發(fā)出的每個(gè)請(qǐng)求都必須包含理解和完成請(qǐng)求所需的全部信息。服務(wù)器不會(huì)存儲(chǔ)客戶端的任何會(huì)話信息。
03 可緩存性
響應(yīng)應(yīng)定義為可緩存或不可緩存。如果一個(gè)響應(yīng)是可緩存的,客戶端就可以在將來(lái)的同等請(qǐng)求中重復(fù)使用響應(yīng)數(shù)據(jù)。
04 分層系統(tǒng)
客戶端通常無(wú)法分辨自己是直接連接到終端服務(wù)器,還是連接到沿途的中介。
05 按需編碼(可選)
服務(wù)器可通過(guò)傳輸可執(zhí)行代碼來(lái)臨時(shí)擴(kuò)展或定制客戶端的功能。
06 統(tǒng)一接口
統(tǒng)一接口可簡(jiǎn)化和分離架構(gòu),使每個(gè)部分都能獨(dú)立發(fā)展。
統(tǒng)一接口的四個(gè)指導(dǎo)原則是:
- 請(qǐng)求中的資源標(biāo)識(shí):在請(qǐng)求中識(shí)別單個(gè)資源,例如在 REST 系統(tǒng)中使用 URI。
- 通過(guò)表示操作資源:當(dāng)客戶端持有資源的表示時(shí),就有足夠的信息來(lái)修改或刪除資源。
- 自描述消息:每條信息都包含足夠的信息來(lái)描述如何處理該信息。
- 超媒體作為應(yīng)用程序狀態(tài)的引擎(HATEOAS):客戶端完全通過(guò)服務(wù)器動(dòng)態(tài)提供的超媒體與應(yīng)用進(jìn)行交互。
圖中給出了一個(gè)標(biāo)準(zhǔn) REST URL (代表了統(tǒng)一接口) 的各個(gè)組成部分。