2016-06-28 12 views
7

In Swagger, @Api Anmerkung description ist veraltet.Die Beschreibung von Api annotaion ist veraltet

Gibt es eine neuere Art der Beschreibung?

+0

Auf welche Version beziehen Sie sich? – Jens

+0

https://github.com/swagger-api/swagger-core/wiki/Annotations-1.5.X oder vielleicht http://docs.swagger.io/swagger-core/current/apidocs/index.html?io/ swagger/annotations/Api.html könnte helfen –

+0

@Jens Ich benutze 2.4.0 Version (Springfox) –

Antwort

0

Der Grund, warum es veraltet ist, ist, dass frühere Swagger-Versionen (1.x) die @Api Beschreibungsannotation für Gruppenoperationen verwendet haben.

In der Swagger 2.0-Spezifikation wurde der Begriff tags erstellt und ein flexiblerer Gruppierungsmechanismus geschaffen. Um API-kompatibel zu sein, wurde das Feld description beibehalten, so dass Upgrades einfach sein würden, aber der korrekte Weg, eine Beschreibung hinzuzufügen, ist das Attribut tags, das auf eine @Tag Annotation verweisen sollte. Die @Tag ermöglicht es Ihnen, eine Beschreibung und auch externe Links usw. zur Verfügung zu stellen.

0

Ich habe eine Lösung für meine Spring Boot-Anwendung gefunden. Zuerst benutzen Sie das tags Methode für die Definitionen Tags geben Sie bei Docket:

@Configuration 
@EnableSwagger2 
public class SwaggerConfig { 

    @Bean 
    public Docket productApi() { 
     return new Docket(DocumentationType.SWAGGER_2).select() 
       .apis(RequestHandlerSelectors.basePackage("my.package")).build() 
       .apiInfo(apiInfo()) 
       .tags(new Tag("tag1", "Tag 1 description."), 
         new Tag("tag2", "Tag 2 description."), 
         new Tag("tag2", "Tag 3 description.")); 
    } 

    private ApiInfo apiInfo() { 
     return new ApiInfoBuilder().title("My API").version("1.0.0").build(); 
    } 
} 

Nachdem in RestController fügen Sie einfach die @Api Annotation mit einem (oder mehreren) der Ihre Tags. Zum Beispiel:

@Api(tags = { "tag1" }) 
@RestController 
@RequestMapping("tag1Domain") 
public class Tag1RestController { ... }