代码之家  ›  专栏  ›  技术社区  ›  Dirk Schumacher

Java Spring Swagger不同的API文档

  •  1
  • Dirk Schumacher  · 技术社区  · 7 年前

    我有一个Spring应用程序,其中公开了两个rest接口供使用。 一个是内部开发人员,另一个是客户。

    /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;
        }
    }
    

    现在,我想把这些夸张的ui文档分开。这样我们的内部开发人员就可以像
    /文档/private/swagger-ui.html
    /文档/public/api-v1.html

    怎么做?

    http://sp ingfox.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>
    

    我希望下拉框访问的不同api由不同的url调用:

    enter image description here

    0 回复  |  直到 7 年前