Adicionando parâmetros de string de consulta às minhas especificações do Swagger
Estou usando o Swashbuckle (swagger for C #) com minha API da Web. Eu tenho vários pontos de extremidade GET que retornam listas e permito que o usuário adicione uma página por página e parâmetros de página no QueryString
Exemplo:http://myapi.com/endpoint/?page=5&perpage=10
Vejo que o swagger suporta parâmetro em 'query', mas como faço para que o Swashbuckle faça isso?
Mencionei em um dos comentários que resolvi meu problema criando um atributo personalizado para permitir que eu fizesse o que precisava. Abaixo está o código da minha solução:
[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;
}
Registre o atributo com a configuração do Swagger:
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.OperationFilter<SwaggerParametersAttributeHandler>();
});
Em seguida, adicione este atributo aos seus métodos:
[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)]