Swagger json 正在显示不需要的模式,例如 .net 核心 Web api 中的默认对象元数据
Posted
技术标签:
【中文标题】Swagger json 正在显示不需要的模式,例如 .net 核心 Web api 中的默认对象元数据【英文标题】:Swagger json is showing unwanted schemas such as default objects metadata in .net core web api 【发布时间】:2020-06-15 16:32:48 【问题描述】:我在 asp.net Core Web API 项目中使用 swagger(Swashbuckle.AspNetCore 5.4.1) 并生成 JSON,组件中有很多不需要的细节,如下所示,但我希望它只显示有用的元数据,如枚举细节特定于我的 API 。请告诉我在设置招摇时我在这里做错了什么
下面是启动的代码
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
app.UseStaticFiles();
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
// Enable middleware to serve generated Swagger as a JSON endpoint.
app.UseSwagger();
// Enable middleware to serve swagger-ui (html, JS, CSS, etc.),
// specifying the Swagger JSON endpoint.
app.UseSwaggerUI(su =>
su.SwaggerEndpoint("/swagger/general/swagger.json", "Common API");
su.RoutePrefix = string.Empty;
);
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
endpoints.MapControllers();
);
public void ConfigureServices(IServiceCollection services)
services.AddControllers()
.AddJsonOptions(options =>
options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()));
services.AddSwaggerGen(c
=>
c.SwaggerDoc("general", new Microsoft.OpenApi.Models.OpenApiInfo
Title = "Common API",
Version = "General Purpose",
Description = "TEST API",
Contact = new Microsoft.OpenApi.Models.OpenApiContact
Name = "VJ-TESTER",
Email = "VJ@TEST.com",
,
);
// Set the comments path for the Swagger JSON and UI.
var xmlFile = $"Assembly.GetExecutingAssembly().GetName().Name.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
c.IncludeXmlComments(xmlPath);
);
【问题讨论】:
您解决了这个问题吗? 这不是固定的,但我认为只是由于控制器参数而发生的事情 提问时不要使用粗体或更大的字体。 【参考方案1】:它可能来自控制器端点输入/输出参数。
【讨论】:
以上是关于Swagger json 正在显示不需要的模式,例如 .net 核心 Web api 中的默认对象元数据的主要内容,如果未能解决你的问题,请参考以下文章
RestAssured 中的无效 JSON Schema 异常,同时针对来自 swagger 的模式进行验证
如何将 swagger 2.0 JSON 文件分解为多个模块
Symfony NelmioApiDocBundle swagger-ui PHP Annotations json对象,对象属性数组未显示