curlコマンドを使った操作
最終更新日: 2023年7月12日
R8 | R9
curl はよく知られているデータ転送用のツールで、コマンドラインで操作します。このページでは curl を使って Wagby の REST API を呼び出す方法を説明します。
公開されているサンプルの「顧客」モデルをインポートし、ビルドします。この顧客モデルは REST API の利用が有効になっています。
作業フォルダに次のようなJSON形式のファイルを用意しておきます。
Wagby の自動ログオンを利用する場合は
例えば 'admin:wagby' というID/PWは、Base64で 'YWRtaW46d2FnYnk=' となります。そこで curl のリクエストヘッダに次のように設定します。
事前に用意していた JSON 形式のファイルを指定することもできます。
注意: Windows OS で利用する場合は「事前に用意していたJSON形式ファイルを指定する」方式としてください。
事前に用意していた JSON 形式のファイルを指定することもできます。
注意: Windows OS で利用する場合は「事前に用意していたJSON形式ファイルを指定する」方式としてください。
事前に用意していた JSON 形式のファイルを指定することもできます。
注意: Windows OS で利用する場合は「事前に用意していたJSON形式ファイルを指定する」方式としてください。
ここでは、予め顧客モデルに「郵便番号」と「住所」を追加し,郵便番号と住所を連動させるように設定したとします。
"X-Wagby-Authorization" 指定ではなく、ログオン時に返戻されるクッキーに含まれる "JSESSIONID" を再利用する方式を説明します。
curlでのクッキーの読み書きは以下のオプションを利用します。
これで cookie_file というファイルが作成されます。以降、このファイルを再利用して操作を継続します。
なお curl は標準で、次のリクエストヘッダを付与します。
そのため、次のように記述することもできます。
curl コマンドに準備
準備
JSONデータを用意する
search.json
{
"customername": {
"content" : "山田"
}
}
new.json
{
"customername": {
"content":"エリック"
},
"tel": {
"content":"03-1111-2222"
}
}
update.json
{
"ID":{
"content":"2"
},
"customername": {
"content":"森山"
},
"tel": {
"content":"070-9999-8888"
}
}
自動ログオンを使う場合
X-Wagby-Authorization
というリクエストヘッダを追加し、さらに値として[ID]:[Password]
をBase64でエンコードしたものを送信します。
curl ... -H "X-Wagby-Authorization: YWRtaW46d2FnYnk=" http://....
顧客の一覧を取得する
curl -X GET -H "X-Wagby-Authorization: YWRtaW46d2FnYnk=" http://localhost:8921/wagby/rest/customer/list
顧客を検索する
curl -X POST -d '{"customername":{"content":"山田"}}' -H "X-Wagby-Authorization: YWRtaW46d2FnYnk=" -H "Content-Type: application/json" http://localhost:8921/wagby/rest/customer/list
curl -X POST -d @search.json -H "X-Wagby-Authorization: YWRtaW46d2FnYnk=" -H "Content-Type: application/json" http://localhost:8921/wagby/rest/customer/list
注意
顧客の新規作成
curl -X POST -d '{"customername":{"content":"エリック"},"tel":{"content":"03-1111-2222"}}' -H "X-Wagby-Authorization: YWRtaW46d2FnYnk=" -H "Content-Type: application/json" http://localhost:8921/wagby/rest/customer/new
curl -X POST -d @new.json -H "X-Wagby-Authorization: YWRtaW46d2FnYnk=" -H "Content-Type: application/json" http://localhost:8921/wagby/rest/customer/new
注意
顧客の更新
curl -X PUT -d '{"customername":{"content":"エリック"},"note":{"content":"テスト"}}' -H "X-Wagby-Authorization: YWRtaW46d2FnYnk=" -H "Content-Type: application/json" http://localhost:8921/wagby/rest/customer/edit/2
curl -X PUT -d @update.json -H "X-Wagby-Authorization: YWRtaW46d2FnYnk=" -H "Content-Type: application/json" http://localhost:8921/wagby/rest/customer/edit/2
注意
顧客の削除
curl -X DELETE -H "X-Wagby-Authorization: YWRtaW46d2FnYnk=" http://localhost:8921/wagby/rest/customer/edit/11
郵便番号での住所検索
完全一致
curl -X GET -H "X-Wagby-Authorization: YWRtaW46d2FnYnk=" http://localhost:8921/wagby/rest/zipcode/9012227
前方一致
curl -X GET -H "X-Wagby-Authorization: YWRtaW46d2FnYnk=" http://localhost:8921/wagby/rest/zipcode/901
自動ログオンを使わない場合
クッキーの新規保存
-c [file name]
または --cookie-jar [File name]
クッキーを読込む
-b [file name]
または --cookie [file name]
ログオン
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "user=admin&pass=wagby" http://localhost:8921/wagby/rest/session --cookie-jar cookie_file
Content-Type: application/x-www-form-urlencoded
curl -X POST -d "user=admin&pass=wagby" http://localhost:8921/wagby/rest/session --cookie-jar cookie_file
顧客の一覧を取得する
curl -X GET http://localhost:8921/wagby/rest/customer/list --cookie cookie_file
顧客を検索する
curl -X POST -d @search.json -H "Content-Type: application/json" http://localhost:8921/wagby/rest/customer/list --cookie cookie_file
顧客の新規作成
curl -X POST -d @new.json -H "Content-Type: application/json" http://localhost:8921/wagby/rest/customer/new --cookie cookie_file
顧客の更新
curl -X PUT -d @update.json -H "Content-Type: application/json" http://localhost:8921/wagby/rest/customer/edit/1012 --cookie cookie_file
顧客の削除
curl -X DELETE http://localhost:8921/wagby/rest/customer/edit/1012 --cookie cookie_file
郵便番号での住所検索
curl -X GET http://localhost:8921/wagby/rest/zipcode/9012227 --cookie cookie_file
curl -X GET http://localhost:8921/wagby/rest/zipcode/901 --cookie cookie_file
ログオフ
curl -X DELETE http://localhost:8921/wagby/rest/session --cookie cookie_file
ワンポイント
-v
を付与すると、HTTPステータスを確認することができます。ログオフ後の curl コマンド呼び出しは認証エラー (401) になっていることがわかります。