[VB.NET] REST API④ GETリクエストの応答をDataSetにする

2021年10月7日

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

GETメソッドの戻り値をDataSetに変更

デフォルトのGETメソッド「GetValues()」は以下のようになっています。

コード

        ' GET: api/ApiTest
        Public Function GetValues() As IEnumerable(Of String)
            Return New String() {"value1", "value2"}
        End Function

コードを以下のように書き換えます。

※この例では、メソッド内でデモ用のDataSetを作成して、結果を返します。

Imports System.Net
Imports System.Web.Http

Namespace Controllers
    Public Class ApiTestController
        Inherits ApiController

        ' GET: api/ApiTest
        Public Function GetValues() As DataSet

            'データテーブルを作成
            Dim tbl As New DataTable
            tbl.TableName = "TestTable"
            tbl.Columns.Add(New DataColumn("col1", GetType(Integer)))
            tbl.Columns.Add(New DataColumn("col2", GetType(String)))
            tbl.Columns.Add(New DataColumn("col3", GetType(DateTime)))

            'データテーブルにテストデータを追加
            Dim row As DataRow

            '1レコード目
            row = tbl.NewRow
            row("col1") = 1
            row("col2") = "This is a test record."
            row("col3") = New Date(2021, 1, 1)
            tbl.Rows.Add(row)

            '2レコード目
            row = tbl.NewRow
            row("col1") = 2
            row("col2") = "It is an api to get the data of the table."
            row("col3") = New Date(2021, 1, 2)
            tbl.Rows.Add(row)

            'データセットにテーブルを追加
            Dim dts As New DataSet
            dts.Tables.Add(tbl)

            'データセットをリターン
            Return dts
        End Function

        ' GET: api/ApiTest/5
        Public Function GetValue(ByVal id As Integer) As String
            Return "value"
        End Function

        ' POST: api/ApiTest
        Public Sub PostValue(<FromBody()> ByVal value As String)

        End Sub

        ' PUT: api/ApiTest/5
        Public Sub PutValue(ByVal id As Integer, <FromBody()> ByVal value As String)

        End Sub

        ' DELETE: api/ApiTest/5
        Public Sub DeleteValue(ByVal id As Integer)

        End Sub
    End Class
End Namespace

実行して確認する

ブラウザからGETメソッドを呼び出して確認してみます。

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

結果はJSON形式です。

2021.09.17追記
このサンプルではブラウザでJson表示したいので、「WebApiConfig.vb」でJsonFormatterに"text/html"を追加しています。


今回はGETメソッドの戻り値をDataSetにしてみました。
結果はJSON形式で取得できます。

GETASP.NET,REST API,VB.NET

Posted by itblogks