2017-05-31 2 views
2

Ich habe im Internet gesucht, wie Endpunkte meiner mehrfachen Lieferscheine anpassen, aber die Antwort nicht gefunden haben.Endpoints von dockets anpassen mit Springfox Swagger

Mein Modul verfügt über mehrere APIs. Ich möchte Swagger-Dokumentation zu verschiedenen Endpunkten generieren, die jeweils auf der Wurzel der entsprechenden API positioniert sind. Zum Beispiel:

  • localhost: 8080/v1/Abos/doc

  • localhost: 8080/v1/Eimer/doc

Ich habe nur ein Weg gefunden zu haben, anders Endpunkte für meine Daten, aber die URL entspricht nicht dem, was ich möchte. Sie sind:

  • localhost: 8080/doc group = Abonnements

  • localhost: 8080/doc group = Eimer

Hier ist meine Swagger Konfigurationsdatei

@Configuration 
@EnableSwagger2 
public class SwaggerConfiguration { 

@Value("${info.version}") 
private String version; 

@Bean 
public Docket subscriptionsApi() { 
    return new Docket(DocumentationType.SWAGGER_2) 
      .groupName("subscriptions") 
      .apiInfo(subscriptionsApiInfo()) 
      .select() 
      .apis(RequestHandlerSelectors.basePackage("com.mymodule")) 
      .paths(PathSelectors.ant("/v1/subscriptions/**")) 
      .build(); 
} 

@Bean 
public Docket bucketsApi() { 
    return new Docket(DocumentationType.SWAGGER_2) 
      .groupName("buckets") 
      .apiInfo(bucketsApiInfo()) 
      .select() 
      .apis(RequestHandlerSelectors.basePackage("com.mymodule")) 
      .paths(PathSelectors.ant("/v1/buckets/**")) 
      .build(); 
} 

private ApiInfo subscriptionsApiInfo() { 
    return new ApiInfoBuilder() 
      .title("Subscriptions Api definition") 
      .description("Subscriptions Api definition") 
      .version(version) 
      .build(); 
} 

private ApiInfo bucketsApiInfo() { 
    return new ApiInfoBuilder() 
      .title("Bucket Api definition") 
      .description("Bucket Api definition") 
      .version(version) 
      .build(); 
} 
} 

Und in meiner application.yml-Datei habe ich geschrieben:

springfox.documentation.swagger.v2.path: "/doc" 

Kennen Sie eine Möglichkeit, die Endpunkte so zu definieren, wie ich es möchte?

Vielen Dank im Voraus

Antwort

1

Ich habe die Antwort gefunden!

@Configuration 
@EnableWebMvc 
public class WebConfig extends WebMvcConfigurerAdapter { 


@Override 
public void addViewControllers(ViewControllerRegistry registry) { 

    registry.addRedirectViewController("/v1/subscriptions/doc", "/doc?group=subscriptions"); 


} 
} 
Verwandte Themen