Swashbuckle operationsfilter for header versioning
public class AddRequiredHeaderParameter : IOperationFilter
{
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
VersionConstraint versionConstraint = null;
try
{
versionConstraint = (VersionConstraint)apiDescription.Route.Constraints["version"];
}
catch { }
if (versionConstraint != null)
{
if (operation.parameters == null)
operation.parameters = new List<Parameter>();
operation.parameters.Add(new Parameter
{
name = "api-version",
@in = "header",
type = "integer",
@enum = new List<object> { 1, 2 },
required = true
});
}
}
}