公開しているREST APIにカスタムエラーをスローするiyou
REST APIメソッドでエラーが発生した場合、何が起こったかについて、クライアントに意味のあるエラーメッセージを送信すると役立ちます。一部の問題はOutSystemsによって自動的に処理されますが、ロジックにカスタムエラー処理を追加することもできます。
ビルトインエラー処理
OutSystemsは、REST APIリクエストを受け取ると、リクエストが有効かどうか確認します。リクエストが有効でない場合、OutSystemsは以下の手順を実行します。
-
- 問題の種類に応じてレスポンスのHTTPステータスコードを設定する。
- 検証手順で検出された各問題について、レスポンスボディにエラーメッセージを追加する。
- レスポンスボディにHTTPステータスコードを追加する。
- そのリクエストに対し定義されたアクションフローを処理せず、ただちに呼び出し元にレスポンスを送信する。
エラーのあるレスポンスボディの例は以下のとおりです。
{ "Errors": [ "The 'Id' URL parameter is missing in the request.", "The request body is missing." ], "StatusCode": 400 }
REST APIリクエストが有効な場合、OutSystemsはREST APIメソッドのアクションフローの実行を開始します。REST APIメソッド実行中に未処理例外が発生した場合、ビルトインエラー処理が例外をキャッチして以下の手順を実行します。
- データベースに加えられた変更をロールバックする。
- レスポンスのHTTPステータスコードを「500」(内部サーバーエラー)に設定する。
- 発生した例外のエラーメッセージをレスポンスボディに追加する。
- レスポンスボディにHTTPステータスコード「500」を追加する。
- 呼び出し元にレスポンスを送信する。
カスタムエラーをスローする
公開するREST APIの開発中、ビルトインエラーとは異なる、独自のカスタムエラーをスローする必要が発生する場合があります。
REST APIでカスタムエラーをスローするには、以下の手順を実行します。
-
スローするカスタムエラーにUser Exceptionを作成します。
-
エラーをスローしてRaise Error要素を追加するREST APIメソッドまたはコールバック(OnAuthenticationやOnRequestなど)のフローに移動します。
-
Exceptionプロパティを、作成したUser Exceptionに設定します。
-
Exception Messageプロパティをカスタムエラーメッセージに設定します。
-
カスタムエラーコードを送信する場合は、カスタム値を使用してレスポンスのHTTPステータスコードを設定します。それ以外の場合、OutSystemsはHTTPステータスコード「500」を返します。