使用招摇

时间:2018-06-11 12:47:51

标签: spring proxy swagger

我使用swagger来描述我的Rest API

所以,这是swaggerConfig.java

@Configuration
@EnableSwagger2
public class SwaggerConfig {


    @Bean
    public Docket api() { 
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .tags(
                        new Tag("Session", "All About Session", 1)
                        )
                .select()
                    .apis(RequestHandlerSelectors.any())
                    .paths(PathSelectors.any())
                    .build();                                           
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("My Rest API")
                .version("1.0.0")
                .build();
    }

我的网络服务部署在此链接http://localhost:2080/ws1.1/

可以通过http://localhost:2080/ws1.1/swagger-ui.html

访问Swagger

现在,我设置了像这样的

的Apache服务器代理
<VirtualHost *:80>

        ServerName cc.com
      ....
        ProxyPass    /stable  http://localhost:2080/ws1.1/
        ProxyPassReverse /stable  http://localhost:2080/ws1.1/

        <Location "/webapps">
            Order deny,allow
            Allow from all
        </Location>

</VirtualHost>

使用此配置,可通过http://cc.com/stable/swagger-ui.html

获取swagger-ui

在那之前,一切都很好

但是当我尝试运行我的API的任何端点时,swagger会生成一个错误的URL

这是生成的网址:http://cc.com/ws1.1/login?login=user&passwd=psw - &gt; KO

我希望这个网址:http://cc.com/stable/login?login=user&passwd=psw

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以尝试将此属性设置为Docket

@Bean
public Docket api() { 
    return new Docket(DocumentationType.SWAGGER_2)
       .pathMapping("/stable")

它将添加一个servlet路径映射到您的端点的URL。