当前位置:   article > 正文

springboot集成knife4j 实现优雅接口文档_knife4j-spring-boot-starter

knife4j-spring-boot-starter

springboot集成knife4j 

一:knife4j 是什么?有什么用

knife4g是为Java 框架集成Swagger生成Api文档的解决方案,而且是一款国产开源的API接口文档

在线查看工具。可以帮助前后端开发人员更好地进行接口联调工作。

二:如何使用knife4g?

针对springboot项目, 我们进行knife4g集成,即可使用。

1:在pom文件引入knife4g插件

注意 knife4g版本和springboot 之间的版本是否匹配 ,我这里使用的都是2开头版本

    

  1. <dependency>
  2. <groupId>com.github.xiaoymin</groupId>
  3. <artifactId>knife4j-spring-boot-starter</artifactId>
  4. <version>2.0.8</version>
  5. </dependency>

2: 设置knife4g的相关属性

这一步是为了后续配置类的属性从此处取值,只做简单展示,解耦合,可省略。

  1. # yml 配置文件
  2. knie4j:
  3.   # true 表示开启 ,false表示关闭      
  4. enabled: true

3:创建配置类

相关要点在代码里已说明,就不多做解释

  1. @Configuration
  2. @EnableSwagger2
  3. @EnableKnife4j
  4. public class Knife4jConfig {
  5. /** 是否开启swagger */
  6. @Value("${knife4j.enabled}")
  7. private boolean enabled;
  8. @Bean(value = "knefi4g")
  9. public Docket knefi4g() {
  10. Docket docket=new Docket(DocumentationType.SWAGGER_2)
  11. // 是否启用knife4j
  12. .enable(enabled)
  13. .apiInfo(new ApiInfoBuilder()
  14. .description("# knefi4g在线接口文档测试")
  15. .contact("demo")
  16. .version("1.0")
  17. .build())
  18. //分组名称
  19. .groupName("1.0版本")
  20. .select()
  21. //这里指定Controller扫描包路径
  22. .apis(RequestHandlerSelectors.basePackage("com.demo.api"))
  23. .paths(PathSelectors.any())
  24. .build();
  25. return docket;
  26. }
  27. }

4:接口类实现knife4g配置

 1:首先在控制器层(Controller) 上加入标题注解 (@Api)

 2:在每个接口上加入接口说明注解 ( @ApiOperatio )

 3:get 请求 添加 ApiImplicitParam注解

 4:在对象类添加相关注解,这样在接口文档就可以看到返回对象的描述说明

 5:启动项目,访问接口文档地址:   localhost:端口号/doc.html 

  1. @Api(tags = "测试类相关接口")
  2. @RestController
  3. @RequestMapping("/demo")
  4. public class demoController{
  5. @ApiOperation(value = "单条件查询接口")
  6. @GetMapping("/query")
  7. @ApiImplicitParam(name ="id",value = "参数",required = true)
  8. public ResultData< List<Model> > query(@RequestParam("id") String id){
  9. List<Model> list=new ArrayList();
  10. return ResultData.success(list);
  11. }
  12. @ApiOperation(value = "多条件查询接口")
  13. @GetMapping("/query")
  14. @ApiImplicitParams({
  15. @ApiImplicitParam(name ="id",value = "参数一",required = true),
  16. @ApiImplicitParam(name ="name",value = "参数二",required = false)
  17. })
  18. public ResultData< List<Model> > query(@RequestParam("id") String id,@RequestParam("name") String name){
  19. List<Model> list=new ArrayList();
  20. return ResultData.success(list);
  21. }
  22. @ApiOperation(value = "保存接口")
  23. @ResponseBody
  24. @PostMapping("/save")
  25. public ResultData save(@RequestBody Modelparam){
  26. return ResultData.success("保存成功");
  27. }
  28. @Data
  29. @ApiModel(description = "参数信息",value = "Model")
  30. public class Model{
  31. /**id */
  32. @ApiModelProperty(value = "参数id")
  33. private Long id;
  34. }
  35. }

效果如下:

另,想具体研究knife4g,可查看官方文档   knife4g官方文档 。

其中,还有许多接口测试工具,比如

apifox

postman ,postwoman 等等,有兴趣的可以自行参考。其实不管什么类型接口文档,大家使用久了

都会习惯,欢迎大家互相交流讨论。

好了,本章文章到此结束。

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

闽ICP备14008679号