Restlet - REST架構風格的介紹
一、關於
2000年,Roy T. Fielding在他的博士學位論文《Architectural Styles and the Design of Network-based Software Architectures》(中文版名為《架構風格與基於網路的軟體架構設計》)中,推匯出來了REST這種新的架構風格。REST並不是一種具體的技術,也不是一種具體的規範,REST其實是一種內涵非常豐富的架構風格。
二、原則
1、面向資源
資源是一種看待伺服器的方式,每個資源是伺服器上一個可命名的抽象概念。因為資源是一個抽象的概念,所以它可以代表伺服器檔案系統中的一個檔案、資料庫中的一張表等等具體的東西。面向資源即使用URI標識所有值得標識的事物,無論這些資源代表單一資料項、資料項集合、虛擬亦或實際的物件還是計算結果等。
2、超文字驅動
“超文字驅動”又名“將超媒體作為應用狀態的引擎”(Hypermedia As The Engine Of Application State,縮寫為HATEOAS)。資源之間通過超連結相互關聯,超連結既代表資源之間的關係,也代表可執行的狀態遷移。在超媒體之中不僅僅包含資料,還包含了狀態遷移的語義,以超媒體作為引擎,驅動Web應用的狀態遷移。即超媒體是連結的思想,使用連結指引可以被標識的資源。
3、統一介面
HTTP協議中定義了一個操作資源的統一介面,主要包括 GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS。REST要求,必須通過統一的介面來對資源執行各種操作,且其操作語義必須由HTTP訊息體之前的部分完全表達,不能將操作語義封裝在HTTP訊息體內部。
4、資源多重表述
資源的表述是一段對於資源在某個特定時刻的狀態的描述。可以在客戶端-伺服器端之間轉移(交換)。資源的表述可以有多種格式,例如HTML/XML/JSON/純文字/圖片/視訊/音訊等等。資源多重表述即針對不同的需求提供資源多重表述。
5、無狀態通訊
伺服器端不保持除了單次請求之外的,任何與其通訊的客戶端的通訊狀態,通訊的會話狀態應該全部由客戶端負責維護。
三、參考
http://www.infoq.com/cn/articles/rest-introduction/
2000年,Roy T. Fielding在他的博士學位論文《Architectural Styles and the Design of Network-based Software Architectures》(中文版名為《架構風格與基於網路的軟體架構設計》)中,推匯出來了REST這種新的架構風格。REST並不是一種具體的技術,也不是一種具體的規範,REST其實是一種內涵非常豐富的架構風格。
二、原則
1、面向資源
資源是一種看待伺服器的方式,每個資源是伺服器上一個可命名的抽象概念。因為資源是一個抽象的概念,所以它可以代表伺服器檔案系統中的一個檔案、資料庫中的一張表等等具體的東西。面向資源即使用URI標識所有值得標識的事物,無論這些資源代表單一資料項、資料項集合、虛擬亦或實際的物件還是計算結果等。
2、超文字驅動
“超文字驅動”又名“將超媒體作為應用狀態的引擎”(Hypermedia As The Engine Of Application State,縮寫為HATEOAS)。資源之間通過超連結相互關聯,超連結既代表資源之間的關係,也代表可執行的狀態遷移。在超媒體之中不僅僅包含資料,還包含了狀態遷移的語義,以超媒體作為引擎,驅動Web應用的狀態遷移。即超媒體是連結的思想,使用連結指引可以被標識的資源。
3、統一介面
HTTP協議中定義了一個操作資源的統一介面,主要包括 GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS。REST要求,必須通過統一的介面來對資源執行各種操作,且其操作語義必須由HTTP訊息體之前的部分完全表達,不能將操作語義封裝在HTTP訊息體內部。
4、資源多重表述
資源的表述是一段對於資源在某個特定時刻的狀態的描述。可以在客戶端-伺服器端之間轉移(交換)。資源的表述可以有多種格式,例如HTML/XML/JSON/純文字/圖片/視訊/音訊等等。資源多重表述即針對不同的需求提供資源多重表述。
5、無狀態通訊
伺服器端不保持除了單次請求之外的,任何與其通訊的客戶端的通訊狀態,通訊的會話狀態應該全部由客戶端負責維護。
三、參考
http://www.infoq.com/cn/articles/rest-introduction/
相關文章
- 理解本真的REST架構風格REST架構
- WebServiceCXF與Restful架構風格簡介WebREST架構
- 軟體架構風格——閉環架構風格(過程風格)架構
- RESTful api風格介紹RESTAPI
- 軟體架構風格——倉庫風格架構
- Orchard架構介紹架構
- OpenTelemetry架構介紹架構
- Rest 風格說明REST
- 軟體架構風格——規則架構架構
- 介紹基於事件的架構事件架構
- 軟體架構風格——虛擬機器風格架構虛擬機
- 軟體架構風格概括架構
- RAG系統架構介紹架構
- nginx介紹(二) 架構篇Nginx架構
- LNMP架構介紹與部署LNMP架構
- TiDB整體架構介紹TiDB架構
- KAFKA介紹(分散式架構)Kafka分散式架構
- Pixhawk系統架構介紹架構
- SpringMVC(2)-Rest請求風格SpringMVCREST
- rest-api設計風格RESTAPI
- 微服務架構的特徵簡要介紹微服務架構特徵
- 理解索引:HBase介紹和架構索引架構
- 論軟體系統架構風格架構
- 程式碼構建軟體架構圖的工具介紹架構
- 架構之:REST和HATEOAS架構REST
- 架構之:REST和RESTful架構REST
- Lustre架構介紹的閱讀筆記-HSM架構筆記
- 簡單介紹架構設計的原則!架構
- 高併發架構的TCP知識介紹架構TCP
- 高併發架構的CDN知識介紹架構
- UML 架構圖入門介紹 starUML架構
- Nginx 架構——【核心流程+模組介紹】Nginx架構
- Flume架構以及應用介紹[轉]架構
- 【閱讀筆記】REST設計風格筆記REST
- Android平臺架構的介紹和原始碼分析Android架構原始碼
- 隱式呼叫架構風格的概念與應用(轉)架構
- NUMA架構介紹及優缺點分析架構
- 微雲視訊轉碼架構介紹架構
- 從零開始學typescript構建一個rest風格web服務TypeScriptRESTWeb