Ryu基本操作的REST API呼叫演示樣例

2021-09-07 16:48:26 字數 2635 閱讀 5401

import urllib2

import json

def get_all_switches():

url = ""

req = urllib2.request(url)

res_data = urllib2.urlopen(req)

res = res_data.read()

res = json.loads(res)

return res

def get_all_links():

url = ""

req = urllib2.request(url)

res_data = urllib2.urlopen(req)

res = res_data.read()

res = json.loads(res)

return res

def get_switch(dpid):

url = "/" + dpid

req = urllib2.request(url)

res_data = urllib2.urlopen(req)

res = res_data.read()

res = json.loads(res)

return res

def get_flow_entries(dpid):

url = "" + dpid

req = urllib2.request(url)

res_data = urllib2.urlopen(req)

res = res_data.read()

res = json.loads(res)

return res

def add_flow_entry(dpid,match,priority,actions):

url = ""

post_data = "" % (dpid,str(match),priority,str(actions))

req = urllib2.request(url,post_data)

res = urllib2.urlopen(req)

return res.getcode()

def delete_flow_entry(dpid, match=none, priority=none, actions=none):

url = ""

post_data = ""

req = urllib2.request(url,post_data)

res = urllib2.urlopen(req)

return res.getcode()

函式說明:

#get_all_switches()

引數:無

返回結果:乙個包括全部交換機資訊的列表

結果演示樣例:

[, ], "dpid": "0000000000000001"}, , ], "dpid": "0000000000000002"}, , ], "dpid": "0000000000000003"}]

#get_all_links()

引數:無

返回結果:乙個包括全部鏈路資訊的列表

結果演示樣例:

[, "dst": }, , "dst": }, , "dst": }, , "dst": }]

#get_switch(dpid)

引數:dpid為字串,比方"0000000000000001"

返回結果:乙個包括dpid相應的交換機的資訊的列表

結果演示樣例:

[, ], "dpid": "0000000000000001"}]

#get_flow_entries(dpid)

引數:dpid為字串,比方"0000000000000001"

返回結果:乙個包括流表項的字典

結果演示樣例:

}, }]}

當中開頭的「1」表示dpid號

#add_flow_entry(dpid,match,priority,actions)

引數:dpid為字串,比方"0000000000000001"

match為字典。比方match = ,其它鍵的名稱見《ryu documentation》p161的flow match structure

priority為字串,比方"1111"

actions為列表,比方actions = 。其它元素名稱見《ryu documentation》p282的actions

返回結果:整數,http狀態碼,200表示加入流表項成功

結果演示樣例:200,403,404

#delete_flow_entry(dpid,match,priority,actions)

引數:dpid為字串。比方"0000000000000001"

match為字典,比方match = ,其它鍵的名稱見《ryu documentation》p161的flow match structure

priority為字串,比方"1111"

actions為列表。比方actions = ,其它元素名稱見《ryu documentation》p282的actions

返回結果:整數,http狀態碼。200表示刪除流表項成功

結果演示樣例:200,403,404

REST API基本原理理解

rest api 利用現有的http協議來實現。核心概念就是 資源 操作 的api。rest api 是一種面向服務的api,介面中性,適合搭建web service時採用。何為資源 資源就是乙個url。例如 其中stu201311是乙個學號。那麼這條url就表示stu201311這個 學生資源 何...

rest api 的首次嘗試

這是一道研發崗的試題,據hr小姐姐說是社招的題,我做起來確實有點吃力 因為我不懂商品需要怎麼分類,不知道rest api 是啥。傳送門 關於資料庫 rest api 專案主體都是照著這個參考寫的 寫完之後覺得很簡單,但是過程太艱難了 坑一 intellij idea 的預設上下文就是啥也沒有,不會攜...

Rest API的簡單應用

最近一直在搞通過rest api的方式讀取sharepoint文件庫中的內容。有些地方需要注意,在此做下記錄。啟動sharepoint伺服器的服務 這裡可以使用指令碼的方式進行啟動,指令碼如下 獲得管理賬戶,比如你的賬戶為sp administrator account get spmanageda...