Start Debugging

タグ: validation

6 件

ASP.NET Core 11 の minimal API にエンドポイントフィルターを追加する方法
ASP.NET Core 11 の minimal API におけるエンドポイントフィルターの完全な実践ガイドです。インラインのデリゲートを使う AddEndpointFilter、DI を伴う IEndpointFilter クラス、GetArgument と Arguments リスト、Results.Problem によるショートサーキット、複数フィルターでの FIFO/FILO の順序、MapGroup でのグループ単位のフィルター、シグネチャに依存するフィルターのための AddEndpointFilterFactory を扱います。
ASP.NET Core 11 で minimal API を手動の検証チェックから組み込み検証へ移行する
ASP.NET Core 11 の minimal API ハンドラーにある手書きの if チェックを、DataAnnotations とソースジェネレーターに基づく組み込みバリデーターへ置き換えるためのステップバイステップの移行ガイドです。何が壊れるか、どの手動ルールが移植できてどれができないか、そして 400 ProblemDetails の契約が同一のままであることをどう検証するかを扱います。
ASP.NET Core 11 で IProblemDetailsService を使って Minimal API のバリデーションエラーレスポンスをカスタマイズする方法
AddProblemDetails に CustomizeProblemDetails コールバックを渡して、ASP.NET Core 11 の組み込み Minimal API バリデーションが返す 400 の形を作り直します。traceId を追加したり、title を書き換えたり、400 を 422 に切り替えたり、カスタム IProblemDetailsWriter で完全に制御したりできます。
ASP.NET Core 11 の minimal API バリデーション vs FluentValidation: どちらを選ぶべきか
ASP.NET Core 11 で属性で表現できる同期的なルールには、ソースジェネレーター生成の組み込みバリデーションを使いましょう。データベースを参照する非同期ルール、複雑なフィールド間ロジック、あるいはバリデーションをドメインモデルの外に保ちたい場合は FluentValidation を選びます。
サーバーと Blazor WebAssembly でバリデーションロジックを共有する方法
Blazor WebAssembly + ASP.NET Core アプリでバリデーションがずれていく最大の原因は、ルールを二度書きたくなる衝動です。本記事では .NET 11 で唯一スケールするレイアウトを示します。DTO とそのバリデーターを所有する Shared クラスライブラリを WASM クライアント (EditForm + DataAnnotationsValidator または Blazored.FluentValidation) とサーバー (minimal API のエンドポイントフィルターまたは MVC のモデルバインディング) の両方から参照し、サーバーから返ってきた ValidationProblemDetails を同じ EditContext に書き戻すラウンドトリップまでテスト済みで構築します。