FastEndpoints全局请求头未在Swagger显示,求助添加配置方法
解决方案
1. 实现自定义IOperationProcessor
创建一个类实现NSwag的IOperationProcessor接口,在Process方法中为所有API操作添加通用请求头定义:
using NSwag; using NSwag.Generation.Processors; using NSwag.Generation.Processors.Contexts; public class GlobalHeadersOperationProcessor : IOperationProcessor { public bool Process(OperationProcessorContext context) { // 添加name请求头(与你的校验逻辑保持必填一致) context.OperationDescription.Operation.Parameters.Add(new OpenApiParameter { Name = "name", Kind = OpenApiParameterKind.Header, Required = true, Schema = new OpenApiSchema { Type = "string" } }); // 添加tracking-Id请求头 context.OperationDescription.Operation.Parameters.Add(new OpenApiParameter { Name = "tracking-Id", Kind = OpenApiParameterKind.Header, Required = true, Schema = new OpenApiSchema { Type = "string" } }); return true; } }
2. 配置FastEndpoints的Swagger扩展
在Program.cs中调用AddSwaggerDocument时,将自定义处理器注入到Swagger文档配置里:
builder.Services.AddFastEndpoints() .AddSwaggerDocument(settings => { // 可添加Swagger基础配置,比如文档标题、版本 settings.Title = "极简API"; settings.Version = "v1"; // 注册自定义全局请求头处理器 settings.OperationProcessors.Add(new GlobalHeadersOperationProcessor()); });
关键说明
- 自定义处理器会自动遍历所有API操作,为每个接口添加指定的请求头参数,Swagger页面即可显示这些必填项。
Required属性需与你IGlobalPreProcessor中的校验逻辑保持一致,必填设为true,可选则设为false。- FastEndpoints的
AddSwaggerDocument内部已封装NSwag的AddOpenApiDocument,直接通过settings.OperationProcessors添加处理器即可,无需额外原生NSwag配置。
内容的提问来源于stack exchange,提问作者Raghavendra Reddy
相关产品推荐
相关产品推荐

