当前位置:   article > 正文

接口工具Swagger2和Swagger-UI的使用_swagger ui

swagger ui

目录

一、为什么需要接口可视化工具?

二、Swagger-UI介绍:

1、在项目的pom文件中导入swagger2的依赖

2、下载Swagger-UI项目

3、引入Swagger-UI

4、编写配置文件

第一种:

第二种:

5、访问api文档页面

6、如果访问失败,则进行第六步,如果访问成功,就不用操作了。


一、为什么需要接口可视化工具?

我们的项目通常涉及大量接口和复杂功能。在开发人员调用服务中的API或者测试人员进行测试时,都需要知道服务所提供的功能,以及如何获取服务的API。常用的接口工具有:swagger、postman、SoapUI、cURL、Fiddler等。这里介绍如何使用swagger。

二、Swagger-UI介绍:

        Swagger-UI是一款非常有用的工具,可以让任何人通过可视化的方式与后台服务端API接口方法进行交互,而无需实现任何逻辑。

        Swagger-UI的配置可以独立存在,不会影响其他业务代码。通过引入Swagger-UI的配置,用户可以自动生成相应的可视化接口文档,并对项目中的接口进行测试。这极大地简化了客户端和服务端的访问流程,使得开发和测试人员能够更加便捷地使用。

1、在项目的pom文件中导入swagger2的依赖

  1. <dependency>
  2. <groupId>io.springfox</groupId>
  3. <artifactId>springfox-swagger2</artifactId>
  4. <version>2.9.2</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>io.springfox</groupId>
  8. <artifactId>springfox-swagger-ui</artifactId>
  9. <version>2.9.2</version>
  10. </dependency>

2、下载Swagger-UI项目

https://github.com/swagger-api/swagger-ui.git

到上面的GitHub地址上通过压缩包的形式下载到本地,再进行解压获取;也可以通过本地安装git管理工具直接通过git clone指令拉取到本地。

3、引入Swagger-UI

        找到刚刚下载好的Swagger-UI项目,进入项目并找到dist目录,将整个dist目录复制到需要使用Swagger-UI工具项目的resources目录下。dist目录中的文件主要就是一些css、js和html等文件,都是用来显示和渲染Swagger-UI工具页面的。

4、编写配置文件

        在config目录下创建Swagger2Config.java配置文件,编写API相关的配置信息 。这个配置文件的内容有很多种写法,但功能都是一样的,这里提供2种,可凭喜好任选。

第一种:

  1. public class Swagger2Config implements WebMvcConfigurer {
  2. /**
  3. * 创建 API 应用
  4. * apiInfo 增加 API 相关信息
  5. * 通过 select() 函数返回一个 ApiSelectorBuilder 实例,用来控制哪些接口暴露给 Swagger 来展现
  6. * 本例采用指定扫描的包路径来定义指定要建立 API 的目录
  7. */
  8. @Bean
  9. public Docket createRestApi(){
  10. return new Docket(DocumentationType.SWAGGER_2)
  11. .apiInfo(apiInfo()) // 用来展示该 API 的基本信息
  12. .select() // 返回一个 ApiSelectorBuilder 实例,用来控制哪些接口暴露给 Swagger 来展现
  13. .apis(RequestHandlerSelectors.basePackage("com/six/campuseventmanagementsystem/controller")) // 配置包扫描路径(根据自己项目调整,通常配置为控制器路径)
  14. .paths(PathSelectors.any()) //
  15. .build();
  16. }
  17. /**
  18. * 创建 API 的基本信息(这些基本信息会展现在文档页面中)
  19. * 访问地址:http://xxx/swagger-ui.html
  20. */
  21. private ApiInfo apiInfo(){
  22. return new ApiInfoBuilder()
  23. .title("校园赛事活动管理系统")
  24. .description("校园赛事活动管理系统 API接口文档")
  25. .termsOfServiceUrl("http://localhost:8080/")
  26. .contact(new Contact("ambrose", "swagger.example", "2020480337@qq.com"))
  27. .version("3.0")
  28. .build();
  29. }
  30. }

第二种:

  1. @Configuration
  2. @EnableSwagger2
  3. public class SwaggerConfiguration {
  4. //定义API接口映射路径
  5. public static final String DEFAULT_INCLUDE_PATTERN = "/user/.*";
  6. private final Logger log =
  7. LoggerFactory.getLogger(SwaggerConfiguration.class);
  8. @Bean
  9. public Docket swaggerSpringfoxDocket() {
  10. log.debug("Starting Swagger");
  11. StopWatch watch = new StopWatch();
  12. watch.start();
  13. //用于生成对应API接口文档的描述信息,可省略
  14. ApiInfo apiInfo = new ApiInfo("用户管理API接口测试文档","description",
  15. "termsOfServiceUrl","contact","version","","");
  16. Docket docket = new Docket(DocumentationType.SWAGGER_2)
  17. .apiInfo(apiInfo)
  18. .genericModelSubstitutes(ResponseEntity.class)
  19. .forCodeGeneration(true)
  20. .genericModelSubstitutes(ResponseEntity.class)
  21. .directModelSubstitute(java.time.LocalDate.class, String.class)
  22. .directModelSubstitute(java.time.ZonedDateTime.class, Date.class)
  23. .directModelSubstitute(java.time.LocalDateTime.class, Date.class)
  24. .select()
  25. .paths(regex(DEFAULT_INCLUDE_PATTERN))//匹配路径生成对应接口文档
  26. .build();
  27. watch.stop();
  28. log.debug("Started Swagger in {} ms", watch.getTotalTimeMillis());
  29. return docket;
  30. }
  31. }

5、访问api文档页面

        运行项目,通过对应“服务地址IP+端口+/swagger-ui.html”请求路径即可进入页面。路径一般为http://localhost:8080/swagger-ui.html

6、如果访问失败,则进行第六步,如果访问成功,就不用操作了。

如果访问失败,原因有可能是无法访问swagger-ui的文件。只需要增加一个配置文件WebMvcConfig重新实现WebMvcConfigurer类并且重新指明路径即可。

  1. @Configuration
  2. public class WebMvcConfig implements WebMvcConfigurer {
  3. @Override
  4. public void addResourceHandlers(ResourceHandlerRegistry registry) {
  5. // 解决静态资源⽆法访问
  6. // registry.addResourceHandler("/**")
  7. // .addResourceLocations("classpath:/static/");
  8. // 解决swagger⽆法访问
  9. registry.addResourceHandler("swagger-ui.html")
  10. .addResourceLocations("classpath:/META-INF/resources/");
  11. // 解决swagger的js⽂件⽆法访问
  12. registry.addResourceHandler("/webjars/**")
  13. .addResourceLocations("classpath:/META-INF/resources/webjars/");
  14. }
  15. }

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

闽ICP备14008679号