2月16日(月)1コマ目

きょう、やったこと

REST APIでエラーを通知する

今日のホワイトボード

今までつくったREST APIはサーバー側でエラーが発生しても、クライアントに伝えていなかった。

エラー発生をHTTPのステータスコードを使って、クライアントに通知する。

作成するアプリケーション

全件検索結果表示+新規登録。

新規登録時に、IDがすでに登録済みならエラーを表示したい。

図 作成するアプリケーション


サーバーからクライアントにエラーを通知する

HTTPのステータスコードを使って通知する

今までは、サーバーでエラーが発生しても、クライアントにはステータスコード200を通知していた。

図 HTTPのステータスコードでエラーを通知する

クライアントから新規登録データを送信されたが、その内容に問題がある場合は、ステータスコード400("Bad Request")を返信する。


そのほかのステータスコード

300番代はリダイレクトメッセージ。

ページ遷移をこの300番代のステータスコードで実現できる。

図 300番代のステータスコードでリダイレクト


400番代はクライアントからのリクエスト内容に問題があるときに送信する。

500番代はサーバーのエラー。


未完成のソースコード

今日、つくったところまで。


Book.java

書籍情報受け渡し用クラス。


BookDAO.java

書籍情報アクセス用クラス。

insert()メソッドに注意!!


BookController.java

コントローラクラス。

insert()はIDが重複している場合は、DuplicateIDExceptionがスローされる.


index.html

とくになんてことはないかと。


insert.js


クライアントの登録データに問題ありの場合の処理

クライアントから送信された新規登録データのうち、IDがすでに利用中の場合は、エラーにしたい。

エラー時の処理のために追加したクラス等。

DuplicateIDException.java

登録時にIDが重複しているときにスローされる実行時例外。


ErrorResponse.java

エラー情報をまとめて扱うためのクラス。


(未完成)GlobalExceptionHandler.java

コントローラー内の各メソッドで共通する処理をこのクラスにまとめて書く。

エラー処理も共通ならこちらに。

未完成。



次回は

GlobalExceptionHandlerクラスから。

サンプル作成のつづき。


 

このブログの人気の投稿

1月15日(木)1コマ目

10月30日(木)1コマ目

12月4日(木)1コマ目