VisualBean
4/25/2017 - 10:13 AM

Swashbuckle operationsfilter for header versioning

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
                });
            }
     }
 }