ASP.NET のProgram.cs で、
"ASP0014: Suggest using top level route registrations" が表示されるようになってしまいました。
どのように対処するのが良いでしょうか?
ASP0014 は、UseEndpoints(...) の中で行っているルート登録を、
app.MapGet(...) や app.MapControllerRoute(...) のようにアプリケーション直下へ移動することを勧める警告です。
従来は UseRouting と UseEndpoints を組み合わせる構成が一般的でしたが、Minimal Hosting モデルではより簡潔にトップレベルでルートを登録する書き方が推奨されています。
endpoints.MapGet() endpoints.MapPost() メソッドを app.MapGet() app.MapPost() メソッドに変更します。
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/hello", async context =>
{
await context.Response.WriteAsync("Hello World!");
});
endpoints.MapPost("/api/data", async context =>
{
await context.Response.WriteAsync("OK");
});
});
app.MapRazorPages();
app.MapGet() や app.MapRazorPages() などのトップレベルルート登録を使う場合、フレームワークが内部的に UseRouting() を自動追加するため、app.UseRouting(); は不要になります。
ただし、UseRouting() の前後でミドルウェアの動作を分けたい場合は明示的に書く意味があります。
app.MapGet("/hello", async context =>
{
await context.Response.WriteAsync("Hello World!");
});
app.MapPost("/api/data", async context =>
{
await context.Response.WriteAsync("OK");
});
app.MapRazorPages();