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