以前に curl で Cisco SD-WAN の REST API を試してみる というメモを書きました。 このメモでは GET
の例しか記載していなかったので改めて GET
, POST
, PUT
, DELETE
する例もメモしておきます。 API の調べ方は前述のメモを参考にしてください。
ログインする
ログイン処理自体は同じです。
curl --insecure \ --silent \ --request POST "https://VMANAGE/j_security_check" \ --header "Content-Type: application/x-www-form-urlencoded" \ --data "j_username=USERNAME&j_password=PASSWORD" \ --cookie-jar cookie.txt
POST して Data Prefix を設定する
まず、POST
用のデータを JSON 形式で用意します。
cat << EOF > data.json { "name": "DATA-PREFIX-1", "description": "Sample Data Prefix", "type": "dataPrefix", "entries": [ { "ipPrefix": "192.168.1.0/24" }, { "ipPrefix": "192.168.2.0/24" }, { "ipPrefix": "192.168.3.0/24" } ] } EOF
用意した JSON を POST
します。 これで Data Prefix が作成されているはずです。 レスポンスとして作成した Data Prefix の ListID
が返されます。
curl --insecure \ --silent \ --header 'Content-Type:application/json' \ --request POST https://VMANAGE/dataservice/template/policy/list/dataprefix \ --cookie cookie.txt \ --data @data.json \ | python -m json.tool
GET して定義されたデータを確認する
全ての Data Prefix を取得するには以下のように GET
します。
curl --insecure \ --silent \ --request GET https://VMANAGE/dataservice/template/policy/list/dataprefix \ --cookie cookie.txt \ | python -m json.tool
特定の Data Prefix だけを表示するには ListID
を指定します。
curl --insecure \ --silent \ --request GET https://VMANAGE/dataservice/template/policy/list/dataprefix/12345678-1234-1234-1234-123456789012 \ --cookie cookie.txt \ | python -m json.tool
PUT してデータを書き換える
POST
は新規作成することが出来ますが、既に同じ名前のデータがある場合、エラーになります。 定義済みデータをアップデートするには PUT
を使います。 まず、書き換えるデータを定義します。
cat << EOF > data.json { "name": "DATA-PREFIX-1", "description": "Sample Data Prefix 2", "type": "dataPrefix", "entries": [ { "ipPrefix": "192.168.4.0/24" }, { "ipPrefix": "192.168.5.0/24" }, { "ipPrefix": "192.168.6.0/24" } ] } EOF
これを PUT
します。 これでデータが書き換えられました。
curl --insecure \ --silent \ --header 'Content-Type:application/json' \ --request PUT https://VMANAGE/dataservice/template/policy/list/dataprefix/12345678-1234-1234-1234-123456789012 \ --cookie cookie.txt \ --data @data.json \ | python -m json.tool
DELETE して削除する
DELETE
するとデータを削除することが出来ます。
curl --insecure \ --silent \ --request PUT https://VMANAGE/dataservice/template/policy/list/dataprefix/12345678-1234-1234-1234-123456789012 \ --cookie cookie.txt