Hola, tenemos la respuesta a tu búsqueda, has scroll y la encontrarás aquí.
Solución:
Lo que escribió el usuario “GT” es correcto pero no funciona con Swagger 5. Tenemos algunos cambios nuevos:
Desde: Operation
para: OpenApiOperation
Desde: IParameter
para: OpenApiParameter
Desde: NonBodyParameter
para: OpenApiParameter
y lo más importante es…
Desde: Type = "string"
para: Schema = new OpenApiSchema Type = "String"
using System.Collections.Generic;
using System.Linq;
using Microsoft.AspNetCore.Mvc.Authorization;
using Microsoft.OpenApi.Any;
using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerGen;
namespace MyAPI
public class AuthorizationHeaderParameterOperationFilter: IOperationFilter
public void Apply(OpenApiOperation operation, OperationFilterContext context)
var filterPipeline = context.ApiDescription.ActionDescriptor.FilterDescriptors;
var isAuthorized = filterPipeline.Select(filterInfo => filterInfo.Filter).Any(filter => filter is AuthorizeFilter);
var allowAnonymous = filterPipeline.Select(filterInfo => filterInfo.Filter).Any(filter => filter is IAllowAnonymousFilter);
if (isAuthorized && !allowAnonymous)
if (operation.Parameters == null)
operation.Parameters = new List();
operation.Parameters.Add(new OpenApiParameter
Name = "Authorization",
In = ParameterLocation.Header,
Description = "access token",
Required = true,
Schema = new OpenApiSchema
Type = "String",
Default = new OpenApiString("Bearer ")
);
Y en Inicio => ConfigureServices => services.AddSwaggerGen()
c.OperationFilter();
Sí, puedes hacerlo mediante la herencia de IOperationFilter
Puede encontrar la respuesta en GitHub aquí: AddRequiredHeaderParameter
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc.ApiExplorer;
using Swashbuckle.AspNetCore.Swagger;
using Swashbuckle.AspNetCore.SwaggerGen;
public class AddRequiredHeaderParameter : IOperationFilter
public void Apply(Operation operation, OperationFilterContext context)
if (operation.Parameters == null)
operation.Parameters = new List();
operation.Parameters.Add(new NonBodyParameter
Name = "X-User-Token",
In = "header",
Type = "string",
Required = false
);
Entonces vas a tu SwaggerConfig.cs
archivo y agregue lo siguiente en el AddSwaggerGen
sección:
c.OperationFilter();
Reconstruir y disfrutar.
Otra forma de agregar encabezados personalizados es agregar parámetros a la acción del controlador.
El siguiente ejemplo agregará x-test
parámetro a la interfaz de usuario:
[HttpPost]
public IActionResult Test([FromHeader(Name="x-test")][Required] string requiredHeader)
return Ok();
Recuerda algo, que tienes la opción de aclarar tu experiencia .