restful介面總結

2021-08-07 20:42:44 字數 1513 閱讀 7692

所有要給api操作的物件都只能是資源。不管實際上存在的,還是抽象上的。所有資源都會有乙個不變的標識(id),對資源的任何api操作都不應該改變資源的標識。資源和其他資源會有關係,資源與資源的關係通過資源的標識來引用。

crud指建立(create),讀取(read), 更新(update),刪除(delete)

通常對資源的操作只包含crud是不可能的,crud裡甚至連查詢的操作的都沒有。但這不妨礙我們對rest的理解,rest提出的要求是,對資源的操作都應該是統一的,不管是操作哪種型別的資源,api都應該是一致的。這樣當呼叫api的客戶端知道某種資源的時候,它不需要去學習對這個資源該怎麼操作,因為對所有資源的操作都是一致的,它們都應該支援crud操作,以及一些其他操作,比如list(用來查詢,或者列出所有資源), merge(部分更新資源,這應該是唯一的不操作資源所有內容的api)。

無狀態性 無 狀態性是在客戶-伺服器約束的基礎上新增的又一層規範。他要求通訊必須在本質上是無狀態的,即從客戶到伺服器的每個request都必須包含理解該 request所必須的所有資訊。這個規範改善了系統的可見性(無狀態性使得客戶端和伺服器端不必儲存對方的詳細資訊,伺服器只需要處理當前 request,而不必了解所有的request歷史),可靠性(無狀態性減少了伺服器從區域性錯誤中恢復的任務量),可伸縮性(無狀態性使得伺服器端可以 很容易的釋放資源,因為伺服器端不必在多個request中儲存狀態)。同時,這種規範的缺點也是顯而易見得,由於不能將狀態資料儲存在伺服器上的共享上 下文中,因此增加了在一系列request中傳送重複資料的開銷,嚴重的降低了效率。

rest 架構風格的核心特徵就是強調元件之間有乙個統一的介面,這表現在rest世界裡,網路上所有的事物都被抽象為資源,而rest就是通過通用的鏈結器介面對 資源進行操作。這樣設計的好處是保證系統提供的服務都是解耦的,極大的簡化了系統,從而改善了系統的互動性和可重用性。

rest架構是針對web應用而設計的,其目的是為了降低開發的複雜性,提高系統的可伸縮性。rest提出了如下設計準則:

網路上的所有事物都被抽象為資源(resource);

每個資源對應乙個唯一的資源識別符號(resource identifier);

通過通用的聯結器介面(generic connector inte***ce)對資源進行操作;

對資源的各種操作不會改變資源識別符號;

所有的操作都是無狀態的(stateless)。

1. 輕量,直接基於http,不再需要任何別的諸如訊息協議。get/post/put/delete為crud操作

2. 面向資源,一目了然,具有自解釋性。

3. 資料描述簡單,一般以xml,json做資料交換。

4. 無狀態,在呼叫乙個介面(訪問、操作資源)的時候,可以不用考慮上下文,不用考慮當前狀態,極大的降低了複雜度。

5. 簡單、低耦合

乙個適用於簡單操作的介面規範而已,無規矩不成方圓,複雜操作並不適用,還是看業務發展需求的

適合crud並且只適合

crud,有的瀏覽器可能不支援post、get之外的提交方式,要特殊處理,api容易給讓誤解中能進行增、刪、查、改等操作

restful介面規範

資源 resource 任何東西都是一種資源,例如,一篇部落格文章 表示 representation 資源的一種表現形式,例如,json xml url 每個資源都應該有乙個對應的url uri url是uri的一種,url都有對應的資源,而uri不一定,它強調的是一種資源標識 get 獲得乙個資...

restful介面規範

聯絡兩個物質的媒介,完成資訊互動 web程式中 聯絡前台頁面與後台資料庫的媒介 web介面組成 請求引數 前台按照指定的key提供資料給後台 響應資料 後台與資料庫互動後將資料反饋給前台 狀態碼,狀態資訊,響應資料 web資料請求介面設計規範共10條,可以分為url與響應兩部分 url 響應部分 f...

Restful介面規範

2000年roy fielding博士在其博士 中提出rest representational state transfer 風格的軟體架構模式後,rest就基本上迅速取代了複雜而笨重的soap,成為web api的標準了。restful作為目前最流行的 api 設計規範,一定有著它獨有的魅力 強...