ひでぼ~blog

C#ときどきゲーム

ASP.NET Core

WebApplicationFactoryを使ってASP .NET Core WebAPIでE2Eテストを試す

実行環境 .NET 8 Visual Studio 17.8.3 xUnit 2.4.2 準備 ASP .NET Core WebAPIのプロジェクトとユニットテストのプロジェクトを作成し、ユニットテストのプロジェクトからWebAPIのプロジェクトを参照するように設定しておきます。 また、Program.csはトップ…

検証属性付きのrecordからswagger.jsonを生成するときの悩み

ASP.NET Coreでリクエストパラメータにrecordを使った場合に出力されるswagger.jsonにRequired等の属性が反映されない問題があったのでまとめました。 問題になっているのはだいたい次のIssueと同じ内容です。 github.com 最近はエンドポイントのリクエスト…

Swashbuckle.AspNetCore.Cliでswagger.jsonを出力する

CI/CDでswagger.jsonを出力したかったのでやってみました。 実行環境 VS2022 17.7.4 .NET 7 Swashbuckle.AspNetCore.Cli 6.5.0 Swashbuckle.AspNetCore.Cliをインストールする プロジェクトのルートで.NET ツールをインストールします。 dotnet new tool-man…

Visual Studio 2022のIntegrated Http Clientを試す

Visual Studio 2022のバージョン17.5から、VSCodeの拡張機能REST Clientと同じようなHTTPリクエストを実行できる機能が追加されたそうなので試してみました。 marketplace.visualstudio.com 実行環境 Visual Studio 2022 17.5 WebAPIを準備する MinimalAPIで…

ASP.NET Core 7のIParsableを試す

ASP.NET Core 7から使えるようになったIParsableを使ってモデルバインドをしてみます。 やること コントローラのアクションで、"2022/12/31,2023/01/01"のような文字列をDateRangeという日付の区間を表すクラスにバインドして受け取れるようにしてみます。 /…

ASP.NET CoreでSwaggerUIを使ってみる

ASP.NET CoreでWebAPIのデバッグをしていてSwaggerUIがすごい便利だったので適当なプロジェクトを作ってSwaggerUIを表示するところまでをやってみます。 nugetパッケージの準備 ASP.NET Core 3.1で適当なWebAPIのプロジェクトを作成します。nugetパッケージ…

ASP.NET Core APIでXML形式のRequestを受け取る

ASP.NET CoreでWebAPIを作り、XML形式のRequestを受け取れるかを試してみました。 .NET Core 3.1、ASP.NET CoreでWebAPIのプロジェクトを作成します。 まずControllerとActionを用意します。 [Route("api/[controller]/[action]")] [ApiController] public c…