Swagger: Unable to render this defition

最近用.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字尾