2016-11-14 1 views
3

Mit Swagger-UI und ServiceStack versuche ich, das Api Attribut zu verwenden, um meine Dienste ein wenig sauberer zu nennen.Wie verwende ich das API-Attribut in ServiceStack ordnungsgemäß, um einen Dienst in SwaggerUI zu benennen?

Ich habe eine harte Zeit herauszufinden, wo das Attribut sein muss, um eine description Eigenschaft zu der API in der resources Endpoint von Swagger erstellt hinzufügen.

Ich habe eine Basisanforderung, die von einigen anderen Anforderungen für meine Kundenendpunkte vererbt wird. Das Attribut Api funktioniert nur, wenn es auf dieser bestimmten Anfrage dto platziert wird. Wenn ich es zu einem anderen verschiebe, hört es auf zu arbeiten. Hier ist ein exmaple von dem, was meine Prahlerei Seite wie folgt aussieht:

enter image description here

Hier ist der Code für das:

enter image description here

Und hier ist der Code, der nicht zu funktionieren scheint:

enter image description here

ich möchte für jeden servic, einen Namen haben e. Vielen Dank!

Edit: Ich habe einige Code in der ServiceStack Codebase, die angibt, dass es nach der FirstAttribute sucht. Ich habe versucht, zu testen, indem ich die Reihenfolge der Dinge änderte und auch nicht die gewünschten Ergebnisse erzielte. Ich schaute auf AttributeExtensions.cs, wenn das hilft.

Antwort

1

Sie [Api("API Description")] oder [Description("API Description")] können Sie eine Beschreibung zu einem einzigen Dienst hinzuzufügen, obwohl dies nicht immer direkt mit einem Swagger Route wie die Swagger UI-Gruppen mehr Routen unter einer Top-Level-Routenkarte, die unterschiedlichen mehr Abdeckungen Dienste, die die Route der höchsten Ebene teilen.

Aber man eine Route Zusammenfassung mit dem RouteSummary Wörterbuch auf SwaggerFeature angeben, z:

Plugins.Add(new SwaggerFeature { 
    RouteSummary = { 
     { "/top-level-path", "Route Summary" } 
    } 
}); 
+0

Hallo mythz, macht Sinn. Erzählst du mir, dass es keine Möglichkeit gibt, direkt festzulegen, was Swagger anzeigen soll? Würde es funktionieren, wenn ich das zu allen dtos einer bestimmten Route hinzufügen würde? d. h. alle dtos mit einer Route, die mit "/ marketing" beginnt (was ich von swagger annehme)? – IronicMuffin

+0

@IronicMuffin FYI Ich habe ein Beispiel für die Verwendung der RouteSummary-Funktion in SwaggerFeature hinzugefügt, um eine Route Summary-Beschreibung anzugeben. – mythz

+0

Danke - ich wusste nicht, dass das eine Option war! – IronicMuffin

Verwandte Themen