Restful 級別劃分以及HATEOAS是什麼?

2022-08-19 09:33:11 字數 1321 閱讀 3378

restful簡介

rest是一種軟體架構風格、設計風格,而不是標準,只是提供了一組設計原則和約束條件。它主要用於客戶端和伺服器互動類的軟體。基於這個風格設計的軟體可以更簡潔,更有層次,更易於實現快取等機制。而滿足這些約束條件和原則的應用程式或設計就是 restful。

restful 級別劃分

rest被劃作了由低到高四個等級,等級越高,restful就越成熟

level 0:the swarmp of pox(plain old xml)   它的特點是:

http僅作為乙個通訊隧道(即http只關注通訊訊息,而不關注客戶端及伺服器間的行為)

採用遠端呼叫協議(remote procedure call protocol):即客戶端想要執行某一任務,或者說向伺服器請求某一服務,只需傳送相關訊息(執行某一句柄),而不用關心底層實現。

提供乙個呼叫介面給客戶端。

level 1:resources      它的特點是:

通過uri來定位資源,實現資源獨立性

採用「物件導向」的通訊方式

相比於level 0,這層更加成熟的地方是客戶端需要標明「我需要什麼?」

level 2:http verbs   它的特點是:level 2追加了http動作來指明我們對於資源要做何種操作,如此,客戶端的請求就能完整的表述為「我需要對xx(資源)做xx(行為)」,該層級是當前使用最為廣泛地rest層級,通常定義如下四個http動作:

get—-》一般性獲得資源,並不改變資源,所以這種操作相對安全

post—》通常為建立資源操作

put—-》通常為更新資源操作

delete-》刪除資源操作

同時,服務端不再通過錯誤訊息(當然,某些系統也會封裝錯誤訊息,給予客戶友善提示)來告訴客戶端執行狀態,而是通過返回http狀態字來告知客戶端請求執行結果。

hateoas

hateoas即超**應用程式狀態的引擎是其餘應用程式體系結構的乙個組成部分,它區別與其他網路應用程式體系結構。使用hateoas,客戶端與應用伺服器的網路應用程式提供通過超**動態資訊。rest客戶需求沒有先驗知識如何與應用程式互動或伺服器超出一般的超**的理解。相比之下,在corba客戶機和伺服器互動通過固定介面共享文件或乙個介面描述語言(idl)。

hateoas為restful web服務帶來了相同的概念。

當請求資源的某些詳細資訊時,您將提供資源詳細資訊以及相關資源的詳細資訊以及您可以對資源執行的可能操作。例如,在請求有關facebook使用者的資訊時,rest服務可以返回以下內容

android 程序級別劃分

android對於所有程序的處理態度都是盡可能不殺死。然而,資源總共就那麼多,要是對所有程序都保持寬容的話,資源總會有消耗殆盡的時候。因此,在記憶體不足的情況,android系統需要根據一定的策略,選擇性的殺死部分程序。這個策略就是對所有的程序標記優先順序,優先順序低的先殺死。android將程序的...

rest 以及restful 簡單介紹

rest representational state transfer 直接翻譯 表現層狀態轉移。通俗來講就是 資源在網路中以某種表現形式進行狀態轉移。resource 資源,即資料 前面說過網路的核心 比如 newsfeed,friends等 representational 某種表現形式,比如...

什麼是REST,以及RESTful?

rest representational state transfer 直接翻譯 表現層狀態轉移。這個中文直譯經常出現在很多部落格中。尼瑪誰聽得懂 表現層狀態轉移 這是人話嗎?我自己也困惑了很久,查詢了很多資料,花了差不多一年有個還算清晰的理解。分享如下 ivony 老師的一句話概括很精闢 url...