【发布时间】:2019-12-30 11:55:05
【问题描述】:
项目结构:
- 控制台应用程序 - 启动 WebAPI 启动
- API 项目(DLL) - 仅配置(使用 (AssemblyPart) 的容器和授权以及控制器类初始化)
- ControllerClass(DLL) - 具有 API 方法
SwaggerDocumentaion 配置, 配置服务类代码:
services.AddSwaggerGen(options =>
{
options.DescribeAllEnumsAsStrings();
options.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info
{
Title = "TestAPI",
Version = "v1",
Description = "TestApplication API for modular monolith .NET application.",
});
var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
var commentsFileName = "Test.Modules.UserAccess.Facade.XML";//Assembly.GetExecutingAssembly().GetName().Name + ".XML";
var commentsFile = Path.Combine(baseDirectory, commentsFileName);
options.IncludeXmlComments(commentsFile);
var securityToken = new Dictionary<string, IEnumerable<string>>
{
{"Bearer", new string[] { }},
};
options.AddSecurityDefinition("Bearer", new ApiKeyScheme
{
Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
Name = "Authorization",
In = "header",
Type = "apiKey"
});
options.AddSecurityRequirement(securityToken);
});
配置类:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IServiceProvider
serviceProvider)
{
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "TestAPI");
c.RoutePrefix = string.Empty;
});
}
我已生成 XML 文件并复制到输出目录。
问题:
我收到错误“无法加载 API 定义”。帮我解决这个问题。
【问题讨论】:
-
发现问题。 Swashbuckle 失败抛出 NotSupportedException 异常。修复异常。正确区分get方法。例如[HTTPGet("{id}")] 。生成该文档后。
标签: c# swagger asp.net-core-2.1 swashbuckle