2017-09-21 1 views
0

Ich benutze Swashbuckle, um Swagger UI zu generieren. Es hat Optionen zum Auswählen eines Gruppierungsschlüssels (Controller standardmäßig) und die Reihenfolge der Gruppen, aber ich möchte einen Auftrag für die Operationen in einer Gruppe wählen, so dass GET zum Beispiel immer vor DELETE erscheint.Wie kann ich die Reihenfolge der Vorgänge in einer Gruppe in Swashbuckle ändern?

Ich habe festgestellt, wie Dokumentenfilter implementieren, und ich kann ApiDescriptions von HttpMethod bekommen und Ordnung, aber die Reihenfolge, in ApiDescriptions Veränderung reflektiert nicht in dem generierten Swagger UI und ich kann nicht finden, wie die Bestellung beharren swaggerDoc.

SwaggerDocument hat eine paths Eigenschaft, aber die PathItem darin hat jede HTTP-Methode als eine Eigenschaft, so dass ich nicht finde, wie man eine Reihenfolge der Präsentation für sie wählt. Wenn jedoch die Swagger-Benutzeroberfläche für meine API generiert wird, erhalten verschiedene Controller unterschiedliche Methodenreihenfolgen auf der Seite.

Sollte ich die Methodenimplementierung manuell in meinem Controller neu anordnen?

+0

Sie erwähnen „Ich habe festgestellt, wie Dokumentenfilter zu implementieren,“ ... dass Code ein guter Ausgangspunkt sein wird, – HelderSepu

Antwort

0

Kennen Sie dieses Problem? https://github.com/domaindrivendev/Swashbuckle/issues/11

public class CustomDocumentFilter : IDocumentFilter 
{ 
    public void Apply(SwaggerDocument swaggerDoc, SchemaRegistry schemaRegistry, System.Web.Http.Description.IApiExplorer apiExplorer) 
    { 
     //make operations alphabetic 
     var paths = swaggerDoc.paths.OrderBy(e => e.Key).ToList(); 
     swaggerDoc.paths = paths.ToDictionary(e => e.Key, e => e.Value); 


    } 
} 

und dann:

c.DocumentFilter<CustomDocumentFilter>(); 
Verwandte Themen