在百度上面找了好久也没找到一个满意的答案
在所有rest统一添加一个参数应该属于一个通用的解决办法,比如统一添加basic验证,或者token,apiKey
使用如下代码可以在swagger-ui上面自动显示需要添加的header参数
但是会对所有的rest添加,如果想只在部分添加,login这样的不需要添加怎么办呢?暂时没找到办法
如果你有办法请写在评论里,供后面的人来用,如果我发现办法了,也会写在评论里
package com.XXXX.config;
import java.util.ArrayList;
import java.util.List;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.schema.ModelRef; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Parameter; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration
@EnableSwagger2 public class SwaggerConfig { public Docket petApi() {//可以添加多个header或参数
ParameterBuilder aParameterBuilder = new ParameterBuilder(); aParameterBuilder.name("Authorization").description("i").modelRef(new ModelRef("string")).parameterType("header").required(false).build(); ParameterBuilder aParameterBuilder1 = new ParameterBuilder(); aParameterBuilder1.name("token").description("").modelRef(new ModelRef("string")).parameterType("query").required(false).build(); List<Parameter> aParameters = new ArrayList<Parameter>(); aParameters.add(aParameterBuilder.build()); aParameters.add(aParameterBuilder1.build()); return new Docket(DocumentationType.SWAGGER_2).apiInfo(getApiInfo()).useDefaultResponseMessages(false).globalOperationParameters(aParameters); } private ApiInfo getApiInfo() { ApiInfo ai = new ApiInfo("XXXXX", "XXXXXX", null, null, null, null, null); return ai; } }