我有一个Spring应用程序,其中我开放了两个REST接口供使用。一个是内部开发人员使用的,另一个是为客户准备的。
Swagger生成了一个漂亮的文档,可通过/swagger-ui.html访问。
在此URL下,它显示了内部和外部用户的文档。
这是我的代码设置:
import org.springframework.boot.info.BuildProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class Swagger2UiConfiguration extends WebMvcConfigurerAdapter {
@Bean(name="restInternalSwaggerApi")
public Docket internalApi(BuildProperties build) {
final Docket docket = new Docket(DocumentationType.SWAGGER_2)
.groupName( "internal" )
.select()
.apis( RequestHandlerSelectors.basePackage("com.xyz.web.internal") )
.build();
return docket;
}
@Bean(name="restPublicSwaggerApi")
public Docket publicApi(BuildProperties build) {
final Docket docket = new Docket(DocumentationType.SWAGGER_2)
.groupName( "public" )
.select()
.apis( RequestHandlerSelectors.basePackage("com.xyz.web.public") )
.build();
return docket;
}
}
现在,我想要将这些swagger-ui文档分离出来,以便我们的内部开发人员可以像这样访问它:
/documentation/private/swagger-ui.html和
/documentation/public/api-v1.html
两者互相不可见。 如何实现?
我在这里找到了一些线索,但对我来说并不是很有用:
http://springfox.github.io/springfox/docs/current/#q13和相关资源链接
Customize endpoints of dockets with springfox Swagger
swagger multiple versions in path
https://github.com/springfox/springfox/issues/963
https://github.com/springfox/springfox/issues/1263#issuecomment-210839308
如果有人能提供正确的文档,我也会很高兴。
让我知道问题是否难以理解以及如何改进。
有关Java的Maven版本信息:
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
换句话说:
我希望通过不同的URL调用由下拉框访问的不同API:
我希望这样做,这样我就可以给客户提供一个与给我的开发同事不同的具有不同API的链接。