You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 13:29:56