Swagger

Swagger macht REST-Apis generisch nutzbar. Zudem kann es zur Dokumentation genutzt werden. Insofern handelt es sich um eine perfekte Symbiose aus Dokumentation und Code.


Getting Started

Im wesentlichen wird die Swagger-Lib zur Webapplikation hinzugefügt

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>${springfox.version}</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>${springfox.version}</version>
</dependency>

und eine minimale Konfiguration bereitgestellt und dann noch folgende Konfiguration (hier in einer Spring Anwendung):

@Component
@EnableSwagger2
public class MySwaggerConfiguration {

  @Bean
  public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
      .useDefaultResponseMessages(false)
      .select()
      .apis(RequestHandlerSelectors.withClassAnnotation(
        RestController.class))
      .paths(PathSelectors.any())
      .build());
  }
}

Schon sind die REST-Endpunkte der eigenen Anwendung komfortabel über eine Weboberfläche nutzbar:

http://localhost:8081/swagger-ui.html

Swagger Editor

Hiermit lässt sich schnell in die Swagger-Welt starten. Die Schnittstelle per Contract-First in einem yaml-File beschrieben. Daraus werden dann Client und Server für verschiedene REST-Implementierungen (u. a. Jaxrs Cxf, Spring MVC, Node.js) zum Download bereitgetsellt.


Swagger-Annotationen

  • io.swagger.annotations.ApiOperation
  • io.swagger.annotations.ApiResponse
  • io.swagger.annotations.ApiResponses

results matching ""

    No results matching ""