RESTful API學習筆記

2021-08-18 22:34:42 字數 1425 閱讀 6968

對於乙個web應用,通常可以分為前端和後端。由於前後端分離,需要有一種機制使前端後端能進行通訊,這就是api,前端通過呼叫api來獲得後端提供的服務。restful api是目前比較成熟的網際網路應用程式的api設計理論。

roy thomas fielding首先提出rest的架構原則,全稱為representational state transfer。

網路上存在著許多資源,資源就是一種資訊的實體,如一張、一首**等等,當需要訪問某個資源時,只要獲得它的uri即可。乙個資源可以有許多表現形式(representation),例如可以用jpg格式表現,也可以用png格式表現。當客戶端與伺服器傳遞某個資源時,是傳遞它的一種表現形式。

restful api足夠簡單、輕量、語義明確,非常適合移動端盛行的這個年代。但restful api並非適用於所有場景,它比較適合設計開放的api,而不那麼適合內部api,因為restful api通常會返回完整的資料模型,這樣的好處是通用,但客戶端處理起來會比較麻煩。如果是設計內部api,可以對restful進行改良,例如當知道客戶端需要什麼欄位時,就可以不用返回完整的資料模型。

uri設計的一些技巧:

在restful架構中,每個**代表一種資源(resource),所以**中不能有動詞,只能有名詞,而且所用的名詞往往與資料庫的**名對應。一般來說,資料庫中的表都是同種記錄的"集合"(collection),所以api中的名詞也應該使用複數。api的身份認證應該使用oauth2.0框架。應該將api的版本號放入url。

對於資源的具體操作型別,由http動詞表示。常用的http動詞有下面五個(括號裡是對應的sql命令)。

還有兩個不常用的http動詞。

如果按照http方法的語義來暴露資源,那麼介面將會擁有安全性和冪等性的特性,例如get和head請求都是安全的, 無論請求多少次,都不會改變伺服器狀態。而get、head、put和delete請求都是冪等的,無論對資源操作多少次, 結果總是一樣的,後面的請求並不會產生比第一次更多的影響。

伺服器向使用者返回的狀態碼和提示資訊,常見的有以下一些(方括號中是該狀態碼對應的http動詞)。

針對不同操作,伺服器向使用者返回的結果應該符合以下規範。

伺服器返回的資料格式,應該盡量使用json,避免使用xml。

restful api最好做到hypermedia,即返回結果中提供鏈結,連向其他api方法,使得使用者不查文件,也知道下一步應該做什麼。比如,當使用者向api.example.com的根目錄發出請求,會得到這樣乙個文件。

}
上面**表示,文件中有乙個link屬性,使用者讀取這個屬性就知道下一步該呼叫什麼api了。rel表示這個api與當前**的關係(collection關係,並給出該collection的**),href表示api的路徑,title表示api的標題,type表示返回型別。

參考:用spring mvc 4實現 crud restful webservice

RESTfulAPI學習筆記

rest是簡單的web api,可以利用rest使用http方法向url做出請求 get post get 獲取資源 post 增加資源 put 替換資源 delete 刪除資源 1 標準檔案函式 file get contents 函式 fopen 需要開啟allow url fopen 配置,一...

Restful API學習筆記

restful是網際網路軟體的架構原則。什麼是網際網路軟體的架構原則呢?網際網路軟體的架構原則就像mvc或者設計模式一樣,一種約定。就像我們日常生活中的,靠右行走,紅燈停綠燈行一樣。而restful就是對於伺服器資源之間互動的一種規定。restful是面向資源的一種準則。什麼是資源,網路上的所有事物...

RestfulApi 學習筆記 父子資源(四)

該系列前文提及到,要體現出資源的乙個結構,那麼如何體現出結構呢?比如說獲取emproyee,應該寫 api companies 1 emproyees,這樣可以體現其結構性。那麼這樣改如何設定呢?1.配置的路由為 route api companies employees 這樣companyid將會...