複数のドックのエンドポイントをカスタマイズする方法をインターネットで検索しましたが、答えが見つかりませんでした。
私のモジュールにはいくつかのAPIがあります。さまざまなエンドポイントでSwaggerドキュメントを生成したいと思います。各エンドポイントは、対応するAPIのルートに配置されています。例えば :
localhost:8080/v1/Subscriptions/doc
localhost:8080/v1/buckets/doc
ドックに異なるエンドポイントを設定する方法は1つしか見つかりませんでしたが、URLが必要なものに対応していません。彼らです :
localhost:8080/doc?group = Subscriptions
localhost:8080/doc?group = buckets
これが私のSwagger構成ファイルです
@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();
}
}
そして私のapplication.ymlファイルに私は書いた:
springfox.documentation.swagger.v2.path: "/doc"
私が望む方法でエンドポイントを定義する方法を知っていますか?
前もって感謝します
私は答えを見つけました!
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addRedirectViewController("/v1/subscriptions/doc", "/doc?group=subscriptions");
}
}