[VB.NET] REST API⑦ GETリクエストでエラー応答をする

2021年10月7日

コントローラーのGETメソッドを変更し、リクエストに対して意図的にエラーを発生させてみましょう。
※ VisualStudio2019
APIプロジェクトの作成方法 についてはこちらを参照してください。
このサンプルでは、以前作成した「ApiTestController」というコントローラーを使用しています。
コントローラーの追加方法はこちらを参照してください。

エラー応答の実装

コントローラーの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に5を指定してGETメソッドを呼び出してみましょう。

実行方法はこちらで紹介しています。

結果がJSON形式で表示されます。

次にIDに1を指定して実行してみましょう。

開発環境で実行しているので、エラーの発生箇所で実行が停止します。

ですが、構わず続行してみましょう。「続行」またはF5キーを押してください。

エラーメッセージがブラウザに出力されます。

今回は意図的にエラーを発生させてみました。
エラーメッセージやエラーコードを指定することで、呼び出し元に適切な情報を渡すことができます。

GETASP.NET,REST API,VB.NET

Posted by itblogks