swashbuckle 相关问题

Swashbuckle是一个开源框架,它将Swagger和Swagger-ui添加到ASP.NET Web API项目中。

在OperationFilter中检索API的响应内容类型

例如,考虑一个 API: var builder = WebApplication.CreateBuilder(args); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(o => o.OperationFilter 例如,考虑一个带有 : 的 API var builder = WebApplication.CreateBuilder(args); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(o => o.OperationFilter<CustomFilter>()); var app = builder.Build(); app.UseSwagger(); app.UseSwaggerUI(); app.MapGet("/", () => { }).WithOpenApi(); app.Run(); 此 API 可以返回内容类型为 application/json 和 application/xml 的响应。 我想创建一个自定义 OperationFilter 来生成具有 API 内容类型可能性的 OpenApi 响应 : public class Foo { } public class CustomFilter : IOperationFilter { public void Apply(OpenApiOperation operation, OperationFilterContext context) { var schema = context.SchemaGenerator.GenerateSchema(typeof(Foo), context.SchemaRepository); operation.Responses.Clear(); var response = new OpenApiResponse(); var apiResponseTypes = new[] { "application/json", "application/xml" }; // <- How get this from API metadata? foreach(string responseType in apiResponseTypes) { response.Content.Add(responseType, new OpenApiMediaType { Schema = schema }); } operation.Responses.Add("200", response); } } 如何检索OperationFilter中的API响应内容类型? 要在自定义 OperationFilter 中检索 API 响应内容类型,您可以从操作方法的属性访问 ProducesAttribute。 public class CustomFilter : IOperationFilter { public void Apply(OpenApiOperation operation, OperationFilterContext context) { var schema = context.SchemaGenerator.GenerateSchema(typeof(WeatherForecast), context.SchemaRepository); operation.Responses.Clear(); var response = new OpenApiResponse(); // Get the ProducesAttribute from the action method var producesAttribute = context.MethodInfo.GetCustomAttribute<ProducesAttribute>(); if (producesAttribute != null) { foreach (var responseType in producesAttribute.ContentTypes) { response.Content.Add(responseType, new OpenApiMediaType { Schema = schema }); } } operation.Responses.Add("200", response); } }

回答 1 投票 0

.Net core Swagger使用FromForm时不显示参数说明

我有一个控制器方法: /// /// 测试接口 /// /// 来自表单 /// <

回答 1 投票 0

在OperationFilter中检索API的响应内容类型

例如,API 具有: var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllers().AddXmlSerializerFormatters(); builder.Services.AddEndpointsApiExplorer(); 建造者.Servi...

回答 1 投票 0

构建失败后生成swagger.json文件

我有一个 ASP.NET Core 6 Web API,我尝试在构建后而不是在运行时生成 swagger.json 文件。 我试图使用 dotnet new tool-manifest 然后 dotnet tool install --vers...

回答 1 投票 0

在 Swagger/Swashbuckle 中切换文档扩展

要配置 Swagger 部分最初是否折叠,我可以使用 SwaggerUIOptions.DocExpansion。但是是否可以在页面上添加一个链接或按钮来展开或折叠所有

回答 1 投票 0

Swagger Swashbuckle 多态性不适用于接口类型

通过下面的代码,我试图提及替代模式;它们共享相同的接口,作为响应的类型。 启动.cs 服务.AddSwaggerGen(c => { c.UseOneOfFor多态性...

回答 2 投票 0

如何在 Swashbuckle 中为不同媒体类型指定响应正文示例?

我有一个 ASP.NET Core 7 Web api,带有各种输出格式化程序,如 CSV、XML、纯文本等。 我在 AddControllers 方法中添加这些格式化程序,例如: builder.Services.AddControllers(操作...

回答 1 投票 0

swagger swashbuckle 不支持嵌套类作为操作方法参数

我正在使用asp.net 5 我有两个嵌套的模型类,两个内部类都命名为 Command 公共类编辑模型 { 公开课命令 { 公共 int Id { 得到;放; }

回答 2 投票 0

招摇错误:schemaIds 冲突:检测到类型 A 和 B 的重复 schemaIds

使用Web API并使用swashbuckle生成swagger文档, 我在两个不同的命名空间中定义了两个具有相同名称的不同类。当我在浏览器中打开 swagger 页面时,它显示...

回答 8 投票 0

如何在授权 swagger ui 中添加自定义标头?

如下代码所示,在.NET中的Web API Project中实现,可以像图片一样通过登录在swagger中发行token。 但除了

回答 1 投票 0

使用 .NET 从 swagger UI 中删除默认的“字符串”

我在 .NET 5 中使用 Swagger 单击“尝试一下”后,Swagger 将在正文中显示一个“字符串”。 (请看下面的截图) 我希望它显示“{}”。 这就是我...

回答 1 投票 0

将嵌入的js/css文件注入Swashbuckle

可以通过将 js/css 放置在 /wwwroot 中,然后使用 InjectJavascript 和 InjectStylesheet 选项来包含它们。 但是我怎样才能注入作为嵌入资源存在的文件呢?它使用...

回答 2 投票 0

Swagger UI 不会在控制器的 GET 操作中呈现复杂类型参数的主体参数字段

我有一个 ASP.NET Web API 2 项目,我已向其中添加了 Swagger - Swashbuckle v5.6.0。一切正常。 Swagger UI 按预期呈现我的 API 的测试端点。 我添加了一个新控制器...

回答 3 投票 0

使用.net core最小API上传文件,Swagger不显示参数名称

我创建了 .net core 最小 API 来使用 .net 7、Swashbuckle 6.5 上传文件。 API 无需 Swagger 即可工作,并使用 Postman 进行测试。 使用 Swashbuckle 添加 OpenAPI/Swagger 支持,它会生成...

回答 1 投票 0

多部分表单数据的 Swashbuckle 序列化

我在控制器方法中有两个参数,一个是表单文件,第二个是DTO对象,它也是表单数据的一部分: 公共异步任务测试方法( ...

回答 1 投票 0

Swashbuckle PCF 上未定义任何操作。适用于本地开发

我读过很多文章,升级的、降级的,甚至侧面升级的,但没有任何东西可以在 PCF 上显示 Swagger 定义。 让它变得格外困难的是它可以在本地运行 VS 2019 IIS

回答 1 投票 0

控制器中的多个 HttpPost 方法可防止生成 swagger .json

我在示例 C# ASP.NET Core 2.0 Api 中有一个 Authors 控制器,并且我正在使用 Swashbuckle 生成 Swagger .json。 当我在 AuthorsController 中包含以下两个方法时,.jso...

回答 2 投票 0

Swagger API - 未提供 API 定义

var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllers(); builder.Services.AddControllersWithViews(); builder.Services.AddSwaggerGen(c => { c.SwaggerDoc("v1&...

回答 1 投票 0

Swagger 不工作 Asp.net Core 如何打开 swagger ui

这是我的 Startup.cs 文件 这是我在Startup.cs 中的ConfigureService 方法。我已经按照文档完全修改了它,但它不起作用。我已经删除了启动网址,所以它只是......

回答 4 投票 0

无法在 Swagger 中注入 Javascript

我尝试将 JavaScript 文件注入到我的 swagger 中,结果出现 404 错误。以下是我的招摇配置 var thisAssembly = typeof(SwaggerConfig).Assembly; 全局配置.配置 .

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.