跳至主要內容

ASP.NET Core 6 自訂路由格式

Pamis Wang大约 1 分鐘後端ASP.NET CoreASP.NET Core 6API

ASP.NETopen in new window Core 6 自訂路由格式

前言

本文說明如何設定 API 的網址大小寫,
雖說網址大小寫對 SEO 基本沒影響,只要格式一致均可。
不過如果有不喜歡大駝峰的命名規則有兩種做法

  • 在屬性路由或路由表手動命名,
  • 透過選項調整路由命名的規則。

本文將透過更改選項的方式來設定路由規則。

路由慣例

在 .NET 的預設慣例路由規則是 Controller 的名字。
基於大駝峰的命名慣例會像這樣。

自訂路由

建立一個 Web API 的專案範本直接作為範例,
將路由選項依賴注入至應用程式即可。

Program.cs 內參考並加入下方片段

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

// 以下兩種寫法都可以
// 更新 AddRouting 的設定
builder.Services.AddRouting(options => options.LowercaseUrls = true);
// 直接使用 builder.Services.Configure<RouteOptions> 進行設定 RouteOptions
builder.Services.Configure<RouteOptions>(options => options.LowercaseUrls = true);

var app = builder.Build();

結果展示

可以看到 Swagger API 文件上的網址變成小寫了

後記

有時候覺得微軟官方的 MSDN 文件真的是需要一些悟性才會讀得懂......

參考資料

ASP.NET Core 中的路由open in new window
ASP.NET Core 中的路由至控制器動作open in new window
RouteOptions 類別open in new window

上次編輯於:
貢獻者: pamis,EXMAIL\pamis,Pamis Wang