Добавление строковых параметров запроса в спецификации Swagger
Я использую Swashbuckle (swagger для C #) с моим веб-API. У меня есть несколько конечных точек GET, которые возвращают списки, и я разрешаю пользователю добавлять страницу и параметры страницы в QueryString
Пример:http://myapi.com/endpoint/?page=5&perpage=10
Я вижу, что swagger поддерживает параметр в 'query', но как мне заставить Swashbuckle это сделать?
Я упоминаю в одном из комментариев, что я решил свою проблему, создав собственный атрибут, позволяющий мне делать то, что мне нужно. Ниже приведен код моего решения:
[AttributeUsage(AttributeTargets.Method, Inherited = false, AllowMultiple = true)]
public class SwaggerParameterAttribute : Attribute
{
public SwaggerParameterAttribute(string name, string description)
{
Name = name;
Description = description;
}
public string Name { get; private set; }
public Type DataType { get; set; }
public string ParameterType { get; set; }
public string Description { get; private set; }
public bool Required { get; set; } = false;
}
Зарегистрируйте атрибут с помощью конфигурации Swagger:
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.OperationFilter<SwaggerParametersAttributeHandler>();
});
Затем добавьте этот атрибут в ваши методы:
[SwaggerParameter("page", "Page number to display", DataType = typeof(Int32), ParameterType = ParameterType.inQuery)]
[SwaggerParameter("perpage","Items to display per page", DataType = typeof(Int32), ParameterType = ParameterType.inQuery)]