使用 Iconfiguration 对象的值配置 Swagger
Configuring Swagger with values from Iconfiguration object
我正在尝试在 startup.cs 中配置 swagger。如果我给它所需的值 "Hardcoded" 如下 in ASP.NET Core : 2.2
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("V1", new Info { Title = "MY.API", Version ="v1" });
});
app.UseSwagger();
// Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
// specifying the Swagger JSON endpoint.
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "MY.API V1");
});
但是如果我从 asp.net 核心提供的 "IConfiguration" 对象中设置以上所有硬编码值,那么它将停止工作,
services.AddSwaggerGen(c =>
{
c.SwaggerDoc(this.Configuration.GetSection("AppSetting")
["APIName"], new Info { Title = "My.API", Version = "v1" });
});
OS: Windows 10 专业版
这应该是评论,但我没有足够的业力。
首先请向我们展示您的 appsettings.json。
第二次检查此行实际上 returns 正确的值而不是 null 或空字符串(只需将其放在本地 var 中):
this.Configuration.GetSection("AppSetting")["APIName"]
编辑:
名称字段似乎区分大小写。确保在 UseSwaggerUI 中也使用来自配置的值:
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint($"/swagger/{this.Configuration.GetSection("AppSetting")["APIName"]}/swagger.json", "MY.API V1");
});
我正在尝试在 startup.cs 中配置 swagger。如果我给它所需的值 "Hardcoded" 如下 in ASP.NET Core : 2.2
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("V1", new Info { Title = "MY.API", Version ="v1" });
});
app.UseSwagger();
// Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
// specifying the Swagger JSON endpoint.
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "MY.API V1");
});
但是如果我从 asp.net 核心提供的 "IConfiguration" 对象中设置以上所有硬编码值,那么它将停止工作,
services.AddSwaggerGen(c =>
{
c.SwaggerDoc(this.Configuration.GetSection("AppSetting")
["APIName"], new Info { Title = "My.API", Version = "v1" });
});
OS: Windows 10 专业版
这应该是评论,但我没有足够的业力。
首先请向我们展示您的 appsettings.json。 第二次检查此行实际上 returns 正确的值而不是 null 或空字符串(只需将其放在本地 var 中):
this.Configuration.GetSection("AppSetting")["APIName"]
编辑: 名称字段似乎区分大小写。确保在 UseSwaggerUI 中也使用来自配置的值:
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint($"/swagger/{this.Configuration.GetSection("AppSetting")["APIName"]}/swagger.json", "MY.API V1");
});