[VB.NET] REST API⑦ GETリクエストでエラー応答をする
エラー応答の実装
コントローラーのGETメソッドで、特定の条件の時にエラーが発生するようにしてみましょう。
デフォルトのGETメソッド 「GetValue」は以下のようになっています。
' GET api/ApiTest/5
Public Function GetValue(ByVal id As Integer) As String
Return "value"
End Function
コードを以下のように書き換えて、ブラウザから実行してみましょう。
IDが5ならレコード(Dictionary)を返し、IDが5以外の時はエラーを発生させます。
この例では、「No record」というエラーメッセージを出力します。
' GET: api/ApiTest/5
Public Function GetValue(ByVal id As Integer) As Dictionary(Of String, String)
Dim rec As New Dictionary(Of String, String)
'IDが 5 以外の場合、エラーとする
If (id <> 5) Then
Dim err_response As New System.Net.Http.HttpResponseMessage(HttpStatusCode.Forbidden) '403
err_response.Content = New System.Net.Http.StringContent("No record")
Throw New HttpResponseException(err_response)
End If
'レコードを返す
rec.Add("col1", id)
rec.Add("col2", "This is a test record.")
rec.Add("col3", New Date(2021, 1, 1))
'レコードをリターン
Return rec
End Function
実行して確認する
次にIDに1を指定して実行してみましょう。
開発環境で実行しているので、エラーの発生箇所で実行が停止します。
ですが、構わず続行してみましょう。「続行」またはF5キーを押してください。
エラーメッセージがブラウザに出力されます。
今回は意図的にエラーを発生させてみました。
エラーメッセージやエラーコードを指定することで、呼び出し元に適切な情報を渡すことができます。