Sto utilizzando Swashbuckle (swagger per C#) con la mia API Web. Ho diversi GET finali Punti che restituiscono elenchi e permetto all'utente di aggiungere un PerPage e pagina params nella QueryStringAggiunta di Params String di query alle specifiche Swagger
Esempio: http://myapi.com/endpoint/?page=5&perpage=10
vedo che spavalderia fa parametro sostegno 'query', ma come faccio Ottengo Swashbuckle per farlo?
Ho menzionato in uno dei commenti che ho risolto il problema creando un attributo personalizzato per consentirmi di fare ciò di cui avevo bisogno. Di seguito è riportato il codice per la mia soluzione:
[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;
}
registrare l'attributo con lo Swagger Config:
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.OperationFilter<SwaggerParametersAttributeHandler>();
});
Quindi aggiungere questo attributo per i vostri metodi:
[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)]
Da dove proviene 'SwaggerParametersAttributeHandler'? : s –
Darn, apparentemente manca anche l'enum di 'ParameterType'. Qualche possibilità che vorresti riempire gli spazi vuoti per noi? ': D' –