最近用.NET Core開發API專案,本來順順好用的Swagger突然無法提供服務
後來發現是Function Naming造成,例如本來有個方法叫做GetOrders,後來又新增另一個方法叫做GetOrdersAsync,就會讓Swagger用來呈現API定義的頁面失效,要解決此問題不是去調整Swagger,而是調整Function Naming~~不要使用Async結尾的命名方式!!!
原因如下(微軟官方說明)
從ASP .NET Core 3.0開始,ASP .NET Core MVC會自動把字尾(suffix)的Async移除,routing和link都會受到此預設影響。
解決方法
方法1:修改屬性services.AddMvc(options => options.SuppressAsyncSuffixInActionNames = false);
方法2:Rename Function避免使用Async字尾