Springの勉強でRestサービスを実装した際に、
curlでRest通信することを学んだ際のメモ。
目次
仕様
ユーザーテーブルに対して、取得(1件、全件)、登録、更新、削除を行う。
コマンド
取得(1件)
1 |
curl http://localhost:8080/rest/user/1 -X GET |
取得(複数)
1 |
curl http://localhost:8080/rest/users -X GET |
登録
以下では見易さのために改行しているが、
実際にコマンドプロンプトで実行するときは改行せずに1行で実行する。
1 2 3 4 5 6 7 8 9 10 11 12 |
curl http://localhost:8080/rest/user/add -X POST -H "Content-Type:application/json" -d "{ \"id\":\"99\", \"password\":\"password\", \"name\":\"curl man\", \"birthday\":\"2000-12-31\", \"age\":\"100\", \"marrige\":\"false\", \"role\":\"ROLE_ADMIN\" }" |
更新
1 2 3 4 5 6 7 8 9 10 11 12 |
curl http://localhost:8080/rest/user/update -X PUT -H "Content-Type:application/json" -d "{ \"id\":\"99\", \"password\":\"password\", \"name\":\"curl man\", \"birthday\":\"2000-12-31\", \"age\":\"101\", \"marrige\":\"true\", \"role\":\"ROLE_ADMIN\" }" |
削除
1 |
curl http://localhost:8080/rest/user/delete/1 -X DELETE |
オプション
-X : HTTPメソッドの指定
以下の4つがある。
Springの場合、
Contollerでマッピングしたメソッド(@GetMapping等)に合わせる。
1 2 3 4 5 6 7 8 9 10 11 12 |
// -X GET @GetMapping("/user/{id:.+}") // 1件取得 @GetMapping("/users") // 全件取得 // -X POST @PostMapping("/user/add") // 登録 // -X UPDATE @PutMapping("/user/update") // 更新 // -X DELETE @DeleteMapping("/user/delete/{id:.+}") // 削除 |
-H :HTTPヘッダーの指定
今回の例だとJSONで通信するので、
コンテンツタイプは「JSON」に指定している。
1 |
-H "Content-Type:application/json" |
-d :HTTPBodyに設定するパラメータ
・「key=value, key=value, ..」の形式で指定する。
・key と valueは、”で囲む。
囲む際、\(円マーク)を付けてエスケープすること。
1 |
-d "{\"id\":\"curltest\",\"password\":\"password\",\"name\":\"curl man\",\"birthday\":\"2000-12-31\",\"age\":\"100\",\"marrige\":\"false\",\"role\":\"ROLE_ADMIN\"}" |
参考書籍
Springに関して網羅的に学べる良書です。
Restの実装とCurlの基本操作はこれで学びました。
後悔しないためのSpring Boot 入門書:Spring 解体新書(第2版): Spring Bootが丸分かり Spring解体新書
コメント