using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen; namespace OBSBoardsApi.Swagger { public class ParameterFilterSwagger : IParameterFilter { public void Apply(OpenApiParameter parameter, ParameterFilterContext context) { switch (parameter.Name) { case "Filters": parameter.Name = "Filter"; parameter.Schema.Type = "string"; parameter.Examples = new Dictionary { { "One column", new OpenApiExample() { Description = "" + "[column]~[operator]~[value]" + "

" + "e.g. name~contains~'test'" } }, { "Many columns", new OpenApiExample() { Description = "" + "([column1]~[operator1]~[value1]~[logic]~[column2]~[operator2]~[value2]~...)" + "

" + "e.g. (name1~contains~'test1'~and~name2~contains~'test2')" } } }; break; case "Sorts": parameter.Name = "Sort"; parameter.Schema.Type = "string"; parameter.Examples = new Dictionary { { "One column", new OpenApiExample() { Description = "" + "[column]-[direction]" + "

" + "e.g. name-asc" } } }; break; } } } }