Sve*_*ven 3 swagger swagger-2.0 asp.net-core
我有一个 ASP.NET Core 2.1 Web 应用程序,它通过 Web API 接口提供 DevExpress 报告。
我想使用 swagger 来向消费者展示使用情况并提供一些有关我的 Web API 的有用信息。但是,Swagger 因以下错误而崩溃:
NotSupportedException:操作的模糊 HTTP 方法 - DevExpress.AspNetCore.Reporting.QueryBuilder.QueryBuilderController.Invoke (DevExpress.AspNetCore.Reporting.v18.2)。操作需要 Swagger 2.0 的显式 HttpMethod 绑定
问题在于 Swagger 试图分析 DevExpress 的QueryBuilderController 中包含的 API 。但是,我不想大摇大摆地分析这些 3rd 方控制器。我现在的问题是如何在 swagger 中过滤/禁用 3rd 方库?
谢谢斯文
Sve*_*ven 11
我按照此处的建议使用自定义 DocInclusionPredicate 使其工作。
示例代码:
services.AddSwaggerGen(c =>
{
c.DocInclusionPredicate((docName, apiDesc) =>
{
// Filter out 3rd party controllers
var assemblyName = ((ControllerActionDescriptor)apiDesc.ActionDescriptor).ControllerTypeInfo.Assembly.GetName().Name;
var currentAssemblyName = GetType().Assembly.GetName().Name;
return currentAssemblyName == assemblyName;
});
c.SwaggerDoc("v1", new Info { Title = "FileService API", Version = "v1" });
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
865 次 |
| 最近记录: |