Closed sugao-2211 closed 10 months ago
消耗品の在庫一覧についてAPIを作成しました。 今回は試験研究などで使用される試薬を題材にして在庫一覧表を作成しました。
コミット一覧
Read処理
Create処理
Update処理
Delete処理
実装済みのため省略 Read処理はこちら
実装済みのため省略 Create処理はこちら
以下の処理を実行
データ更新
curl --location --request PATCH 'http://localhost:8080/stockList/1' \ --header 'Content-Type: application/json' \ --data '{ "name": "エタノール(95)", "grade": "特級", "quantity": "500", "unit": "mL", "purchase": "2023-09-30" }'
実行結果(Postman)
実行結果(SQL)
バリデーションは以下のコードを記述 https://github.com/sugao-2211/stockListProject/blob/cbc95ec5c3e328702519e88b0b54de0de67e26f9/src/main/java/com/stock/stocklist/controller/request/UpdateRequest.java#L17-L34
例外処理は以下のコードで実施 https://github.com/sugao-2211/stockListProject/blob/298d4015b43313a869b09a04d2cdf652d1617625/src/main/java/com/stock/stocklist/controller/ExceptionHandlerController.java#L22-L47 https://github.com/sugao-2211/stockListProject/blob/cd34c4b35a55664394e89476c91cc0b2ff8e74fe/src/main/java/com/stock/stocklist/controller/ExceptionHandlerController.java#L62-L70
例外処理は以下の内容で実施。
NotFoundException
@DateTimeFormat(pattern = "yyyy-MM-dd")
MethodArgumentNotValidException
HttpMessageNotReadableException
quantity
int
例外処理の確認1 (NotFoundException)
実行結果
レビュー後に下記の変更を加えました。 (updateProcessingブランチのREADMEには反映しています。)
quantityのバリデーションについて、空文字(Null)でも0でも@Minのエラーが表示されるため @NotNullのメッセージを削除しました。 https://github.com/sugao-2211/stockListProject/blob/1a1c63363a1b089b3b5cedbbe28031a535fcb7eb/src/main/java/com/stock/stocklist/controller/request/InsertRequest.java#L17-L34
@Min
@NotNull
quantityを空文字で入力することについて、例外処理の確認ができていなかったので追加で実施しました。
CRUD処理すべてを備えたREST APIの作成
概要
消耗品の在庫一覧についてAPIを作成しました。
今回は試験研究などで使用される試薬を題材にして在庫一覧表を作成しました。
コミット一覧
APIの内容
Read処理
Create処理
Update処理
Delete処理
データベース作成時の内容
Read処理の実装
実装済みのため省略 Read処理はこちら
Create処理の実装
実装済みのため省略 Create処理はこちら
Update処理の実装
以下の処理を実行
データ更新
実行結果(Postman)
実行結果(SQL)
例外処理の確認
バリデーションは以下のコードを記述
https://github.com/sugao-2211/stockListProject/blob/cbc95ec5c3e328702519e88b0b54de0de67e26f9/src/main/java/com/stock/stocklist/controller/request/UpdateRequest.java#L17-L34
例外処理は以下のコードで実施
https://github.com/sugao-2211/stockListProject/blob/298d4015b43313a869b09a04d2cdf652d1617625/src/main/java/com/stock/stocklist/controller/ExceptionHandlerController.java#L22-L47
https://github.com/sugao-2211/stockListProject/blob/cd34c4b35a55664394e89476c91cc0b2ff8e74fe/src/main/java/com/stock/stocklist/controller/ExceptionHandlerController.java#L62-L70
例外処理は以下の内容で実施。
NotFoundException
で処理@DateTimeFormat(pattern = "yyyy-MM-dd")
以外はMethodArgumentNotValidException
で処理@DateTimeFormat(pattern = "yyyy-MM-dd")
はHttpMessageNotReadableException
で処理quantity
の入力内容がint
型に合致しない場合はHttpMessageNotReadableException
で処理例外処理の確認1 (NotFoundException)
実行結果
Create処理について
レビュー後に下記の変更を加えました。
(updateProcessingブランチのREADMEには反映しています。)
quantityのバリデーションについて、空文字(Null)でも0でも
@Min
のエラーが表示されるため@NotNull
のメッセージを削除しました。https://github.com/sugao-2211/stockListProject/blob/1a1c63363a1b089b3b5cedbbe28031a535fcb7eb/src/main/java/com/stock/stocklist/controller/request/InsertRequest.java#L17-L34
quantityを空文字で入力することについて、例外処理の確認ができていなかったので追加で実施しました。