5 回答
![?](http://img1.sycdn.imooc.com/5333a2320001acdd02000200-100-100.jpg)
TA贡献1848条经验 获得超2个赞
对于OpenAPI3和SpringBoot:
我在控制器的方法上使用了 @Hidden 注释。
它似乎在方法级别和控制器级别都有效。
@Hidden 注释是通过以下方式导入的:
import io.swagger.v3.oas.annotations;
![?](http://img1.sycdn.imooc.com/54584cd10001404b02200220-100-100.jpg)
TA贡献1828条经验 获得超6个赞
另一种方法是使用@ApiOperation(hidden = true) 这可以在控制器/处理程序级别的方法中使用。例如
@RestController
public HomeController{
@ApiOperation(value = "<Your Message>", hidden = true)
public String getMessage(@RequestParam(value = "msg") final String msg){
return msg;
}
}
![?](http://img1.sycdn.imooc.com/545845d30001ee8a02200220-100-100.jpg)
TA贡献1784条经验 获得超8个赞
我们只想从类中隐藏特定方法的场景。对于 swagger.v3 有一个名为Hiddenin的注释io.swagger.core.v3:swagger-annotations:2.0.10 jar。要隐藏的方法可以使用注释进行Hidden注释,如下所示。下面的方法显示了DELETE需要从 swagger 文档中隐藏的操作方法。
@DELETE
@Hidden
public void deleteList(int id) {
//code goes here.
}
![?](http://img1.sycdn.imooc.com/545861b80001d27c02200220-100-100.jpg)
TA贡献1860条经验 获得超9个赞
另一种不同的好方法是在 SpringFox 配置上定义可见路径
@Configuration
@EnableSwagger2
public class SpringFoxConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(Predicates.or(PathSelectors.ant("/rtm/**"), PathSelectors.ant("/appview/**")))
.build().apiInfo(apiEndPointsInfo());
}
}
通过这种方式,您可以集中定义可见路径,并避免在许多控制器上放置大张旗鼓的注释。
添加回答
举报