当前位置:   article > 正文

Springboot集成Swagger--knife4j和swagger-spring-boot-starter_spring boot swagger knife4j-spring-boot-starter

spring boot swagger knife4j-spring-boot-starter

目录

一.Swagger简介

二.使用knife4j集成swagger

1.使用方式

2.常用注解

三.使用swagger-spring-boot-starter集成swagger

1.添加swagger-spring-boot-starter依赖

2.在 .yml中配置swagger的扫描包路径及其它信息

3.在启动类中添加@EnableSwagger2Doc注解

4.常用注解的话与knife4j一样


一.Swagger简介

使用Swagger你只需要按照他的规范去定义接口及接口相关信息再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,以及在线接口调试页面等等。
官网:https://swagger.io/

knife4j和swagger-spring-boot-starter都可以让springboot集成Swagger生成Api文档。

二.使用knife4j集成swagger

1.使用方式

1.导入knife4j的maven坐标(版本如果冲突的话自己用maven helper来exclude一下)

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

2.导入knife4j相关配置类(地址一定要写对!!!,挺多坑的)

  1. @Slf4j
  2. @Configuration
  3. @EnableSwagger2
  4. @EnableKnife4j
  5. public class WebMvcConfig extends WebMvcConfigurationSupport {
  6. //设置静态资源映射
  7. @Override
  8. protected void addResourceHandlers(ResourceHandlerRegistry registry) {
  9. log.info("开始进行静态资源映射...");
  10. registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
  11. registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
  12. }
  13. //扩展mvc框架的消息转换器
  14. @Override
  15. protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
  16. log.info("扩展消息转换器...");
  17. //创建消息转换器对象
  18. MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
  19. //设置对象转换器,底层使用Jackson将Java对象转为json
  20. messageConverter.setObjectMapper(new JacksonObjectMapper());
  21. //将上面的消息转换器对象追加到mvc框架的转换器集合中
  22. converters.add(0,messageConverter);
  23. }
  24. //设置扫描包
  25. @Bean
  26. public Docket createRestApi(){
  27. //文档类型
  28. return new Docket(DocumentationType.SWAGGER_2)
  29. .apiInfo(apiInfo())
  30. .select()
  31. .apis(RequestHandlerSelectors.basePackage("com.flyingpig.controller"))
  32. .paths(PathSelectors.any())
  33. .build();
  34. }
  35. //文档相关信息
  36. private ApiInfo apiInfo(){
  37. return new ApiInfoBuilder()
  38. .title("uu考勤")
  39. .version("1.0")
  40. .description("uu考勤接口文档")
  41. .build();
  42. }
  43. }

3.如果有filter,则需要设置不需要处理的请求路径,因为这时程序自动生成文档的静态界面,所以我们要让这些静态资源通行。在你的filter或者spring security配置类中配置。

例如下面在配置类中允许这些资源匿名访问。

然后我们访问localhost:9090/doc.html就可以找到看到对应的文档了

2.常用注解

三.使用swagger-spring-boot-starter集成swagger

1.添加swagger-spring-boot-starter依赖

<!-- Spring Boot 集成 swagger -->
<dependency>
    <groupId>com.spring4all</groupId>
    <artifactId>swagger-spring-boot-starter</artifactId>
</dependency>

2.在 .yml中配置swagger的扫描包路径及其它信息

base-package为扫描的包路径,扫描Controller类。

swagger:
  title: "your-title"
  description: "your-description"
  base-package: com.flyingpig.content
  enabled: true
  version: 1.0.0

3.在启动类中添加@EnableSwagger2Doc注解 

再次启动服务,工程启动起来,访问http://localhost:{该服务的端口号}/swagger-ui.html查看接口信息和进行测试

4.常用注解的话与knife4j一样

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

闽ICP备14008679号