軟體定義網路基礎 REST API的設計規範

2022-06-12 19:15:06 字數 2326 閱讀 1219

rest api是基於http協議進行設計的,由http動詞+uri組成

文件是資源的單一表現形式;

集合是資源的乙個容器(目錄),可以向裡面新增 資源(文件);

客戶端管理的乙個資源庫,可以向倉庫中新增資源 或者刪除資源,或者從倉庫中獲取資源;

可以執行乙個方法,支援引數輸入,結果返 回。

 文件(document)型別的資源用      名詞單數命名

 集合(collection)型別的資源用   名詞複數命名

 倉庫(store)型別的資源用     名詞複數命名

 控制器(controller)型別的資源用  **動詞**命名

uri中有些字段可以是變數,在實際使用中可以按需替換,例如:

--- 其中:leagueid,teamid,playerid 是變數(數字,字串等型別都可以)。

 uri中分隔符「/」一般用來對資源層級的劃分, 」/「不應該出現在url的末尾;

 uri中盡量使用連字元"-"代替下劃線"_"的使用

 例如:

 uri中統一使用小寫字母

 uri中不要包含檔案(或指令碼)的副檔名

 例如:不要出來.php或者.json之類的字尾名。

 crud的操作不要體現在uri中

 作為查詢的引數補充,以標示乙個唯一的資源

 作為過濾條件使用,例如:

 get /users?role=admin

 作為資源列表分頁標示使用,例如:

 get /users?pagesize=25&pagestartindex=50

 2xx:操作成功

 3xx:重定向

 4xx:客戶端錯誤

 5xx:伺服器錯誤

 200 (「ok」) :一般性的成功返回,不可用於請求錯誤返回;

 201 (「created」) :資源被建立;

 202 (「accepted」) :controller控制類資源非同步處理的返回,僅表示請求已經收到;

 204 (「no content」) :可能會出現在put、post、delete的請求中;

位址的狀態;

 400 (「bad request」) :客戶端一般性錯誤返回, 其它4xx的錯誤,也可以使用400,

具體錯誤資訊可以放在body中;

 401 (「unauthorized」) :認證錯誤;

 404 (「not found」) :找不到uri對應的資源;

 500 internal server error:伺服器處理請求時發生了意外;

 content-length :body 資料體的大小

 last-modified :資源最後被修改的時間戳

 etag :伺服器端資源版本的標示

 location :在響應header中使用

 cache-control, expires, date : 通過快取機制提公升介面響應效能

floodlight北向api對外提供了四個模組:openflow流表、防火牆、acl、多租戶網路虛擬化。

 查詢所有acl規則:get http://:8080/wm/acl/rules/json

 新增acl規則:post http://:8080/wm/acl/rules/json

 刪除一條acl:delete http://:8080/wm/acl/rules/json

 刪除所有acl:get http://:8080/wm/acl/clear/json

使用post動詞具體建立acl或是使用delete動詞刪除某條acl時,還需要在json中帶上需要傳輸的資料。例如以curl為例:

REST API基礎介紹

1 介面中盡量使用名詞 2 使用post請求資源 3 delete請求刪除資源 eg.get notes id 獲取某個指定id的筆記資訊 1 rest resource representational state transfer 資源在網路傳輸中 以某種 表現形式 進行 狀態轉移 ps 網際網...

軟體定義網路基礎 OF Config協議

交換機與控制器繼續通訊前,是需要對其功能 特性以及資源進行配置才能進行工作,這些配置是如何實現的?是由專門的配置協議指導完成的 是openflow交換機管理配置協議,是openflow的伴侶協議 控制器和交換機根據openflow協議進行通訊前,使用of config協議對交換機進行配置 of co...

軟體定義網路基礎 OpenFlow流表

我們把同一時間經過同一網路中,具有某種共同特徵或屬性的資料,抽象為乙個流 流一般是由網路管理員定義的,可以根據不同的流執行不同的策略,在openflow中,資料都是作為流進行處理的。所以流表就是針對特定流的策略表項的集合,負責資料報的查詢和 一張流表包含了一系列的流表項flow entries 動作...