ASP.NET Core Web API の Tips

ASP.NET Core で Web API を利用する際の注意点や備忘録です。ほぼ箇条書きです。
ASP.NET Web API 版は以前に書きました。

ルーティング、コントローラーなど

ASP.NET Web API と細かい差異はありますが、説明は省略します。
公式解説を参照するとよいでしょう。

CORS

  • NuGet で Microsoft.AspNetCore.Cors をインストールする
  • Startup.cs で AddCors メソッドおよび UseCors メソッドを呼び出すことで機能を有効にする
    • AddMvc メソッドおよび UseMvc メソッドの前で呼び出す必要がある
    • コントローラー、アクションの単位では [EnableCors] を指定する

CORS が機能しているかどうかをテストするには、現在実行中のものとは異なるドメインを Origin ヘッダーに付加して API を呼び出します。
応答に Access-Control-Allow-Origin ヘッダーが含まれていれば OK です。

要求ヘッダー

Origin: https://tempuri.org

応答ヘッダー

Access-Control-Allow-Origin: *

ツールとしては Advanced REST client などを使えばよいでしょう。

公式解説: ASP.NET Core でのクロス オリジン要求 (CORS) を有効にする

ヘルプ ページ

コードの XML ドキュメントから、ユーザー向けのヘルプ ページを自動的に生成する機能です。
ASP.NET Core では、OpenAPI (Swagger) の .NET 向け実装である Swashbuckle を利用します。
API を呼び出すためのテスト UI も含まれていて便利です。

  • NuGet で Swashbuckle.AspNetCore をインストールする
  • プロジェクトのプロパティで、XML ドキュメントの出力を有効にする
  • Startup.cs で AddSwaggerGen メソッド、UseSwagger メソッドおよび UseSwaggerUI メソッドを呼び出すことで機能を有効にする

ソースコード: Startup.cs

  • ヘルプ ページの URI は既定で /swagger となるが、ルートに変更するには、RoutePrefix を空文字列に設定する
  • アクション メソッドの戻り値が IActionResult の場合、
    [ProducesResponseType(200, Type = typeof(string))] のように属性でデータの型を指定する
  • このサンプルではアセンブリ情報の値をタイトルなどに設定している

公式解説: Swashbuckle と ASP.NET Core の概要

フォーマット

ASP.NET Core Web API では、既定でテキスト (text/plain) と JSON が有効になっています。
テキストを無効にして XML を有効にするには、Startup.ConfigureServices メソッド内で次のようにします。

さらに、コントローラーまたはアクションに Produces 属性を指定することで、利用可能な Content-Type を制限することもできます。

[Produces("application/json", "application/xml")]

公式解説: ASP.NET Core Web API の応答データの書式設定

 

前回: dotnet コマンドによるビルド

作成したサンプル

バージョン情報

  • Microsoft.AspNetCore.All 2.0.8
  • Microsoft.AspNetCore.Cors 2.0.3
  • Swashbuckle.AspNetCore 2.5.0

参照

広告
カテゴリー: .NET Core. タグ: , . 3 Comments »