RestSharpを使用してASP.NETCore WebAPIを使用する方法

RESTは、Representational State Transferの頭字語であり、過去数年間で非常に人気のあるアーキテクチャスタイルです。RESTful APIは、RESTの原則とガイドラインに従って構築されたものです。RESTful APIは通常、応答としてプレーンテキスト、JSON、またはXMLを返します。

RestSharpは、RESTfulサービスを簡単に利用できるようにするオープンソースのHTTPクライアントライブラリです。RestSharpは、HTTPリクエストの操作の内部の複雑さを抽象化しながら、RESTfulサービスを操作するための開発者向けのインターフェイスを提供します。RestSharpは、同期要求と非同期要求の両方をサポートします。

この記事では、RestSharpを使用して、ASP.NETCoreを使用して構築されたサービスを利用する方法について説明します。

この記事のコード例を使用するには、システムにVisual Studio2019がインストールされている必要があります。まだコピーをお持ちでない場合は、こちらからVisual Studio2019をダウンロードできます。 

ASP.NET CoreAPIプロジェクトを作成します

まず、VisualStudioでASP.NETCoreプロジェクトを作成しましょう。Visual Studio 2019がシステムにインストールされていると仮定して、以下に概説する手順に従って、VisualStudioで新しいASP.NetCoreプロジェクトを作成します。

  1. Visual StudioIDEを起動します。
  2. 「新しいプロジェクトの作成」をクリックします。
  3. [新しいプロジェクトの作成]ウィンドウで、表示されたテンプレートのリストから[ASP.NET CoreWebアプリケーション]を選択します。
  4. [次へ]をクリックします。
  5. 「新しいプロジェクトの構成」ウィンドウで、新しいプロジェクトの名前と場所を指定します。
  6. [作成]をクリックします。
  7. [新しいASP.NetCore Webアプリケーションの作成]ウィンドウで、ランタイムとして.NET Coreを選択し、上部のドロップダウンリストからASP.NET Core 2.2(またはそれ以降)を選択します。ここではASP.NETCore3.0を使用します。
  8. プロジェクトテンプレートとして「API」を選択して、新しいASP.NET CoreAPIアプリケーションを作成します。 
  9. ここではこれらの機能を使用しないため、[Dockerサポートを有効にする]チェックボックスと[HTTPS用に構成する]チェックボックスがオフになっていることを確認してください。
  10. 認証も使用しないため、認証が「認証なし」に設定されていることを確認してください。
  11. [作成]をクリックします。 

これらの手順に従うと、VisualStudioで新しいASP.NETCoreAPIプロジェクトが作成されます。次に、[ソリューションエクスプローラー]ウィンドウで[コントローラー]ソリューションフォルダーを選択し、[追加]-> [コントローラー...]をクリックして、[読み取り/書き込みアクションのあるAPIコントローラー]を選択します。この新しいコントローラーにDefaultControllerという名前を付けます。

このプロジェクトは、この記事の後続のセクションで使用します。

ASP.NET CoreAPIにDefaultControllerを実装する

DefaultController.csファイルを開き、その中のコードを以下のコードに置き換えます。

Microsoft.AspNetCore.Mvcを使用します。

System.Collections.Genericを使用する;

名前空間RESTAPIDemo.Controllers

{{

    [Route( "api / [controller]")]

    [ApiController]

    パブリッククラスDefaultController:ControllerBase

    {{

        プライベート読み取り専用辞書作成者= new Dictionary();

        public DefaultController()

        {{

            authors.Add(1、 "Joydip Kanjilal");

            authors.Add(2、 "スティーブスミス");

            authors.Add(3、 "Michele Smith");

        }

        [HttpGet]

        パブリックリストGet()

        {{

            リストlstAuthors = new List();

            foreach(作成者のKeyValuePair keyValuePair)

                lstAuthors.Add(keyValuePair.Value);

            lstAuthorsを返します。

        }

        [HttpGet( "{id}"、Name = "Get")]

        パブリック文字列Get(int id)

        {{

            著者を返す[id];

        }

        [HttpPost]

        public void Post([FromBody] string value)

        {{

            authors.Add(4、value);

        }

        [HttpPut( "{id}")]

        public void Put(int id、[FromBody] string value)

        {{

            authors [id] =値;

        }

        [HttpDelete( "{id}")]

        public void Delete(int id)

        {{

            authors.Remove(id);

        }

    }

}

上記のDefaultControllerクラスを参照してください。このクラスには、HTTP動詞GET、POST、PUT、およびDELETEのそれぞれに対応するアクションメソッドが含まれていることに注意してください。簡単にするために、ここでは辞書を使用してデータを保存および取得しています。このAPIは、WebブラウザまたはPostmanやFiddlerなどのツールを使用してテストできます。簡単にするために、HttpPostメソッドでIDをハードコーディングしたことに注意してください。一意のキーを生成するには、独自の方法で実装する必要があります。

ここまでは順調ですね。次のセクションでは、RestSharpを使用して構築したAPIを使用する方法を学習します。

APIを使用するクライアントを作成します

以前に構築したAPIを使用するクライアントとして、コンソールアプリケーションを使用します。Visual Studio 2019がシステムにインストールされていると仮定して、以下に概説する手順に従って、VisualStudioで新しい.NETCoreコンソールアプリケーションプロジェクトを作成します。

  1. Visual StudioIDEを起動します。
  2. 「新しいプロジェクトの作成」をクリックします。
  3. 「新規プロジェクトの作成」ウィンドウで、表示されたテンプレートのリストから「コンソールアプリ(.NETCore)」を選択します。
  4. [次へ]をクリックします。
  5. 次に表示される[新しいプロジェクトの構成]ウィンドウで、新しいプロジェクトの名前と場所を指定します。
  6. [作成]をクリックします。

新しい.NETCoreコンソールアプリケーションプロジェクトを作成するために必要なのはこれだけです。

RestSharpNuGetパッケージをインストールします

RestSharpを使用するには、NuGetからRestSharpパッケージをインストールする必要があります。これは、Visual Studio 2019 IDE内のNuGetパッケージマネージャーを使用するか、NuGetパッケージマネージャーコンソールで次のコマンドを実行することによって実行できます。

インストール-パッケージRestSharp

RestSharpを使用してASP.NETCoreAPIを使用する

RestSharpをプロジェクトにインストールしたら、それを使い始めることができます。まず、RestClientのインスタンスを作成する必要があります。次のコードスニペットは、RestClientクラスをインスタンス化して初期化する方法を示しています。RestClientクラスのコンストラクターにベースURLを渡していることに注意してください。

RestClientクライアント=新しいRestClient( "// localhost:58179 / api /");

次に、使用するリソース名とメソッドを渡して、RestRequestクラスのインスタンスを作成する必要があります。次のコードスニペットは、これを実現する方法を示しています。

RestRequestリクエスト= new RestRequest( "Default"、Method.GET);

最後に、以下に示すコードスニペットに示すように、リクエストを実行し、レスポンスを逆シリアル化し、必要に応じてオブジェクトに割り当てる必要があります。

IRestResponse
   
     response = client.Execute
    
     (リクエスト);
    
   

以下は、参照用の完全なコードリストです。

RestSharpを使用する;

システムを使用する;

System.Collections.Genericを使用する;

名前空間RESTSharpClientDemo

{{

    クラスプログラム

    {{

        プライベート静的RestClientクライアント=新規

        RestClient( "// localhost:58179 / api /");

        static void Main(string [] args)

        {{

            RestRequestリクエスト=新しいRestRequest( "デフォルト"、

            Method.GET);

            IRestResponse 応答=

            client.Execute (リクエスト);

            Console.ReadKey();

        }

    }

}

RestSharpを使用してPOSTリクエストを行うには、次のコードを使用できます。

RestRequestリクエスト= new RestRequest( "Default"、Method.POST);

request.AddJsonBody( "Robert Michael");

var response = client.Execute(request);

RestSharpは、いくつかの.NETプラットフォームで利用できます。これが、RestSharpが非常に人気がある理由の1つです。RestSharpの自動逆シリアル化機能も注目に値します。RestSharpの詳細については、GitHubをご覧ください。