對REST風格的理解

2021-07-10 05:15:22 字數 1552 閱讀 5927

1. 自我理解:資源、表述性狀態轉換、轉移:將服務物件資源化,採用資源的風格來架構系統。

即,把每個服務抽象為資源,通過對這個資源的curd形成統一的介面。

更多情況下,體現為約定大於協議。

2.統一性:

每個資源只允許有curd,多個資源間的定義為資源委派:resourceassignment,

對委派的資源進行curd.

見:第4點,使用統一的介面。

3.標準的http方法:

由於restful web api採用了統一的介面,所以其成員體現為針對統一資源的操作。對於web來說,針對資源的操作需通過http方法來體現。兩者結合起來,即web api針對crud的操作只能接受具有對應http方法的請求。

4.無狀態性:

http協議的無狀態性,造就rest的無狀態性,無狀態性的設計使得rest本身顯得簡單而精煉。

對客戶端的無狀態性,也使得負載均衡更好的實施。因為只有這樣集群中的每一台伺服器對於每個客戶端才是等效的。

5.rest風格與soa的區別:

個人理解,rest是實現soa架構的一種技術風格,soa架構的技術實現有很多種,如webservice、wcf、remoting、webapi等,其中webapi即為rest風格。它約束了你實現它時就是對乙個資源的curd,並且只能採用http協議,且無狀態操作。

附:網路上一區別比較:

rest的特性

它基於http協議,是一種明確構建在客戶端/服務端體系結構上的一種風格。特徵如下:

1、網路上的資源都被抽象為資源,這些資源都具有唯一的統一資源識別符號(uri:uniform resourceidentiter),這些資源都是自我們描述的。這些資源使用http內容標頭型別指定。如:xml、json、html、png等。

2、服務的使用者通過http協議的標準動作(get、put、post、delete)通過統一的介面對資源進行操作。

3、對資源進行的操作不會改變它的uri。

4、客戶端、服務端之間的互動是沒有狀態的。由於這種無狀態行,服務端不需要為每個客戶端維護context

soa的特徵

1、通過網路終結點對外提供服務。

2、粗粒度的服務介面。

rest與soa的共同點

rest與soa兩者,雖有不同點,但是他們都作為服務的不同架構風格,具有服務的一般屬性。具體如下:

1、統一的服務契約介面與服務介面

2、鬆散的耦合。

3、只要有許可權都可以進行訪問

rest與soa的不同點

1、rest風格下的,只有一種協議,那就是http。而soa下的wcf就和多種協議了。如:tcp、http、msmq等多種協議

2、使用方式上的不同。rest只要客戶端能夠模擬http請求,通過標準的http動作,都可以進行訪問。它使用的是httpchannel管道,而soa使用的管道有httpchannel、tcpchannel、rpc等多種。

3、rest寄宿時,雖然可以選擇多種寄宿方式,但必須有應用伺服器的支援。

ps: webapi學習入門:

rest風格的理解

個人理解rest風格是一種規範,之前傳統的風格是將資源和對資源的操作融合在一起,而rest風格則是將資源和對資源的操作分隔開,充分發揮http動作,不是摁住post和get使勁薅。比方說庫存裡的一件商品是資源,傳統方式對這件商品進行修改,可能是http updateproduct,而rest風格則是...

關於REST架構風格的初步理解

wikipedia representational state transfer rest is a style of software architecture for distributed hypermedia systems such as the world wide web.翻譯上面的...

REST架構風格

rest風格通過uri訪問得到的資訊是自我描述的,包括了資訊本身和表示方式 html,xml,資料流等 資訊的描述是採用最通用的協議 http 超文字轉換協議 來進行的.客戶端根據資訊的表示解析和展示資訊本身.而互動是通過http的幾個基本操作 get,put,post,delete 來實現.一些看...