在阶段/测试/产品环境中访问Swagger-UI

时间:2018-12-27 12:36:43

标签: spring-boot swagger swagger-ui swagger-2.0

我已经在代码中使用SpringBoot实现了SpringFox Swagger2和Swagger-UI,并且能够记录这些API。我还可以使用本地系统上的http://localhost:8080/api/swagger-ui.html#/访问Swagger-UI HTML页面。

现在,我已将更改提交到部署在暂存环境中的master分支。但是,当我尝试使用暂存环境URL并将swagger-ui html页面附加到该URL时,将重定向到阶段环境的目标页面。 例如sampleURL.com/api/swagger-ui.html/

如何使此swagger-ui页面在我可以在本地访问的所有环境(例如阶段/测试/产品)中都可用?

我的配置:

@Configuration
@EnableSwagger2
class SwaggerConfig {

@Bean
fun tryItOutConfig(): UiConfiguration {
    return UiConfigurationBuilder.builder().supportedSubmitMethods(arrayOf("")).build()
}

@Bean
fun myApi(): Docket {
    val globalResponses = Arrays.asList(ResponseMessageBuilder()
            .code(200)
            .message("Success")
            .build(), ResponseMessageBuilder()
            .code(401)
            .message("Unauthorized")
            .build(), ResponseMessageBuilder()
            .code(403)
            .message("Forbidden")
            .build(), ResponseMessageBuilder()
            .code(404)
            .message("Not found")
            .build(), ResponseMessageBuilder()
            .code(500)
            .message("Internal Server Error")
            .build())

    return Docket(DocumentationType.SWAGGER_2)
            .useDefaultResponseMessages(false)
            .produces(hashSetOf("application/json") as MutableSet<String>?)
            .globalResponseMessage(RequestMethod.GET, globalResponses)
            .globalResponseMessage(RequestMethod.POST, globalResponses)
            .globalResponseMessage(RequestMethod.DELETE, globalResponses)
            .globalResponseMessage(RequestMethod.PUT, globalResponses)
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.sample.controller"))
            .build()
            .apiInfo(apiInfo())
}

private fun apiInfo(): ApiInfo {
    return ApiInfo(..API Info here..)
}

}

Swagger-UI和Swagger2版本:2.9.2

注意:我需要在其中访问Swagger-UI的环境具有Google OAuth身份验证。

谢谢。

0 个答案:

没有答案