3

我是 Swagger 的新手,并且已经使用 spring mvc 实现了 Swagger UI,我想在生产/实时环境中禁用 UI。我正在努力弄清楚。

这就是我正在使用的

SwaggerConfig.java

@Configuration
@EnableSwagger2
public class SwaggerConfig {


}

RestController.java

    @RestController
    @Api(value="city", description="Operations pertaining to City Data")
    @RequestMapping(value="/v1/city")
    public class RestController {

    @ApiOperation(value = "View city by stateId or stateName")
        @RequestMapping(value="/search",method=RequestMethod.POST)
        public ResponseEntity<Object> getCityBystateId(@RequestBody StateDto stateDto,Model model){
        }
}
4

2 回答 2

7

查看 Spring 的配置文件机制,它可以让您在不同的环境中注册不同的 bean

当您根据 doc 引导它时,您可以使用 eg 在类级别上注释您的 swagger 配置类@Profile("dev"),从而为您选择的环境启用 swagger 配置

@Configuration
@EnableSwagger2
@Profile("dev")
public class SwaggerConfig {


}
于 2015-06-27T11:39:36.093 回答
5

另一种方法是使用反向代理拒绝在您的生产环境中访问 Swagger Api。

在这种情况下,您的生产安装与您的开发/测试环境完全相同(然后更符合 DevOps 方法),您可以继续通过内部调用访问您的 Swagger API。

于 2015-06-30T07:45:06.507 回答