一日一膳(当社比)

RとJavaと時々数学

VSCodeで始めるSpringBoot(2) ~ 簡単なREST apiつくってみた

SpringBoot + SQLServer2017で簡単なREST apiを作ってみました.

GitHub - gradus-AP/springboot-simple-REST-api

SpringBootってなんやねんって方は,前回記事もご参考までに...

sonnamonyaro.hatenablog.com

環境

api概要

今回作ったのは,DBのCRUD操作をRESTサービスで提供するapiです.各CRUD操作とapi側の HTTPメソッドは次のように対応付けられます.

DB側 api側(HTTPメソッド) 操作の内容
Create POST リソースの新規作成
Read GET リソースの取得
Update PUT リソースの更新
Delete DELETE リソースの削除

DB

DB側では次のようなusersテーブルを用意しました.

フィールド名 制約
id INT IDENTITY(1, 1) PRIMARY KEY
name VARCHAR(255)

ここでid列のIDENTITY(1, 1)は,このフィールドの値を初期値1, 増分1で自動採番を行うというSQLServerのオプションです. 今回は,

apiの仕様

HTTPメソッド URL jsonリクエス 処理を内容
POST /api/users/ {name:{name}} 名前が{name}のユーザを新規作成
GET /api/users/ - usersテーブルの全レコード取得
GET /api/users/{id} - idが{id}であるユーザ名取得
PUT /api/users/{id} {name:{name}} idが{id}であるユーザ名を{name}へ変更
DELETE /api/users/{id} - idが{id}であるユーザを削除

動作確認script(PowerShell)

PowerShellターミナルからコマンドInvoke-WebRequestをたたいてHTTPリクエストを送ろう.

#POST user 'Yukichi Fukuzawa'を作成 
Invoke-WebRequest -Method Post -Body @{name='Yukichi Fukuzawa'} http://localhost:8080/api/users/

#GET user 'Yukichi Fukuzawa'が返される
Invoke-WebRequest http://localhost:8080/api/users/

#GET user 'Yukichi Fukuzawa'が返される
Invoke-WebRequest http://localhost:8080/api/users/1

#PUT user 'Yukichi Fukuzawa'が'Hideyo Noguchi'に変更
Invoke-WebRequest -Method PUT -Body {name='Hideyo Noguchi'} http://localhost:8080/users/api/1

#DELETE user 'Hideyo Noguchi'が削除される
Invoke-WebRequest -Method DELETE http://localhost:8080/users/api/1

#GET userは1件も登録されていない
Invoke-WebRequest http://localhost:8080/api/users/

参考