如题,给swagger配置了一个全局的参数token,但是部分的接口不需要该参数(如登录接口),如何单独的将该接口的参数进行屏蔽(不在页面显示)呢?
使用分组功能
@Bean(value = "defaultApi")
public Docket defaultApi() {
List<Parameter> pars = new ArrayList<Parameter>();
ParameterBuilder tokenPar = new ParameterBuilder();
tokenPar.name(headerToken).description(tokenDescription)
.modelRef(new ModelRef("String")).parameterType("header")
.required(tokenRequired).build(); //header中的Token参数必填,但是这里不能解决部分接口不需要token参数
pars.add(tokenPar.build());
return new Docket(DocumentationType.SWAGGER_2)
.enable(isEnable)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("project.api.auth"))
.paths(PathSelectors.any())
.build().groupName("需要token验证").globalOperationParameters(pars).ignoredParameterTypes(HttpServletResponse.class, HttpServletRequest.class);
}
@Bean(value = "publicApi")
public Docket publicApi() {
return new Docket(DocumentationType.SWAGGER_2)
.enable(isEnable)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("project.api.pub"))
.paths(PathSelectors.any())
.build().groupName("无需token验证").ignoredParameterTypes(HttpServletResponse.class, HttpServletRequest.class);
}