当前位置:   article > 正文

接口文档swapper2和knife4j_knife4j如何指定请求头里面放参数

knife4j如何指定请求头里面放参数

官网:springboot集成knife4j

swapper2

Swagger能够根据代码中的注解自动生成api文档,并且提供测试接口;

依赖

  1. <!--swagger2的依赖-->
  2. <dependency>
  3. <groupId>io.springfox</groupId>
  4. <artifactId>springfox-swagger2</artifactId>
  5. </dependency>
  6. <!--swagger2视图-->
  7. <dependency>
  8. <groupId>io.springfox</groupId>
  9. <artifactId>springfox-swagger-ui</artifactId>
  10. </dependency>

配置

  1. @Configuration
  2. @EnableSwagger2 //开启swagger2的功能
  3. public class SwaggerConfig implements WebMvcConfigurer {
  4. @Bean
  5. public Docket productApi() {
  6. //添加head参数start
  7. ParameterBuilder tokenPar = new ParameterBuilder();
  8. List<Parameter> pars = new ArrayList<Parameter>();
  9. tokenPar.name("token").description("令牌").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
  10. pars.add(tokenPar.build());
  11. return new Docket(DocumentationType.SWAGGER_2).select() //创建一个swagger2的文档
  12. // 扫描的包路径(controller的路径)
  13. .apis(RequestHandlerSelectors.basePackage("cn.swag.demo.controller"))
  14. // 定义要生成文档的Api的url路径规则
  15. .paths(PathSelectors.any())
  16. .build()
  17. .globalOperationParameters(pars)
  18. // 设置swagger-ui.html页面上的一些元素信息。
  19. .apiInfo(metaData());
  20. }
  21. private ApiInfo metaData() {
  22. return new ApiInfoBuilder()
  23. // 标题
  24. .title("SpringBoot集成Swagger2")
  25. // 描述
  26. .description("项目接口文档")
  27. // 文档版本
  28. .version("1.0.0")
  29. .license("Apache License Version 2.0")
  30. .licenseUrl("https://www.apache.org/licenses/LICENSE-2.0")
  31. .build();
  32. }
  33. //ui页面
  34. @Override //添加静态资源
  35. public void addResourceHandlers(ResourceHandlerRegistry registry) {
  36. registry.addResourceHandler("swagger-ui.html")
  37. .addResourceLocations("classpath:/META-INF/resources/");
  38. registry.addResourceHandler("/webjars/**")
  39. .addResourceLocations("classpath:/META-INF/resources/webjars/");
  40. }
  41. }

常用注解

@Api/@ApiOperation

用法说明:

@Api:用在类上,说明该类的作用

@Api(value = "用户资源",description = "用户资源控制器")

@ApiOperation:用在方法上,说明方法的作用

@ApiOperation(value = "注册功能",notes = "其实就是新增用户")

@ApiImplicitParams/@ApiImplicitParam

用法说明:

@ApiImplicitParams:用在方法上包含一组参数说明

@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面

paramType:参数放在哪个地方

header-->请求参数的获取

query-->请求参数的获取

path-->请求参数的获取(用于restful接口):

body-->请求实体中

@ApiImplicitParams({

        @ApiImplicitParam(value = "昵称",name = "nickName",dataType = "String",required = true),

        @ApiImplicitParam(value = "邮箱",name = "email",dataType = "String",required = true),

        @ApiImplicitParam(value = "密码",name = "password",dataType = "String",required = true)

})

@ApiModel/@ApiModelProperty

用法说明

@ApiModel:描述一个Model的信息,也就是贴在实体类上

(这种一般用在post创建的时候,使用@RequestBody这样的场景,请求参数无法使用@ApiImplicitParam注解进行描述的时候)

@ApiModelProperty:描述一个model的属性        //贴在属性上

@ApiModel(value="用户",description="平台注册用户模型")

@ApiModelProperty(value="昵称",name="nickName",dataType = "String",required = true)

@ApiResponses/@ApiResponse

@ApiResponses:用于表示一组响应

@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息(200相应不写在这里面)

code:数字,例如400

message:信息,例如"请求参数没填好"

response:抛出的异常类

@ApiResponses({

@ApiResponse(code=200,message="用户注册成功")

})

@ApiIgnore

有些接口不想显示,就贴上去,可以贴在类上,也可以贴在方法上。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/891312
推荐阅读
相关标签
  

闽ICP备14008679号