Ich verwende Swashbuckle (Prahlerei für C#) mit meiner Web API. Ich habe mehrere GET End-Points, die Listen zurückkehren und ich kann der Benutzer eine perpage und Seite params in der Abfrage-ZeichenfolgeHinzufügen von Query String Params zu meinen Swagger Specs
Beispiel hinzuzufügen: http://myapi.com/endpoint/?page=5&perpage=10
Ich sehe, dass Prahlerei tut Unterstützung Parameter in ‚query‘ aber wie Ich bekomme Swashbuckle, es zu tun?
ich in einer der Kommentare erwähnen, dass ich mein Problem gelöst, indem eine benutzerdefinierte Erstellung Attribut mir zu erlauben, zu tun, was ich brauchte. Unten ist der Code für meine Lösung:
[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;
}
das Attribut mit dem Swagger Config registrieren:
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.OperationFilter<SwaggerParametersAttributeHandler>();
});
Dann dieses Attribut auf Ihre Methoden hinzufügen:
[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)]
Woher kommt 'SwaggerParametersAttributeHandler'? : s –
Darn, anscheinend fehlt auch die 'ParameterType'-Enumeration. Gibt es eine Chance, dass du bereit bist, die Lücken für uns zu füllen? ': D' –