Springboot之整合Swagger3

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Springboot之整合Swagger3

swagger在开发阶段,对开发人员和前端人员非常友好。

Swagger对开发很重要

是的,Swagger(现在通常称为OpenAPI)对于开发非常重要,尤其是在构建和维护RESTful API时。以下是Swagger对开发重要性的几个方面:

  1. API文档:Swagger提供了一种标准化的方式来描述API的端点、参数、请求/响应模型以及授权机制。这使得开发者能够轻松地理解和使用API,同时也便于API的维护和更新。
  2. 交互式文档:Swagger UI允许开发者通过一个用户友好的界面来查看API文档,并且可以直接在浏览器中测试API端点,这大大简化了API的测试过程。
  3. 代码生成:Swagger可以生成客户端SDK(软件开发工具包),这些SDK可以帮助开发者快速集成API到他们的应用程序中,减少了手动编写API调用代码的工作量。
  4. 自动化测试:Swagger规范可以与自动化测试工具集成,帮助开发者创建和维护API测试用例,确保API的稳定性和可靠性。
  5. API设计优先:Swagger鼓励开发者采用“API设计优先”的方法,即在编写实际代码之前先设计API。这种方法有助于确保API的一致性和可预测性,同时也便于团队协作和沟通。
  6. 跨平台兼容性:由于Swagger是基于OpenAPI规范的,它提供了一种跨平台和语言无关的方式来描述和使用API,这意味着无论开发者使用什么技术栈,都可以使用相同的API文档和工具。
  7. API版本控制:Swagger支持API版本控制,这有助于管理API的不同版本,确保向后兼容性,同时也便于逐步迁移到新的API版本。
  8. 社区和生态系统:Swagger/OpenAPI有一个庞大的社区和生态系统,提供了大量的工具和插件,可以帮助开发者更高效地使用Swagger。

Swagger通过提供一套完整的工具和规范,极大地简化了API的开发、文档化、测试和维护过程,对于现代软件开发来说是一个不可或缺的工具。


Java中实现Swagger

依赖

<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>

配置

application.yaml

spring:
  # mvc这部分解决swagger3在新版本Springboot中无法展示的问题
  mvc:
    pathmatch:
      matching-strategy: ANT_PATH_MATCHER

java实现配置类

@Configuration
@EnableOpenApi
public class SwaggerConfig {
    @Bean
    public Docket docket() {
        return new Docket(DocumentationType.OAS_30)
                .apiInfo(apiInfo())
                .select()// 自行修改为自己的接口路径,不配置扫描全部路径
                .apis(RequestHandlerSelectors.basePackage("com.itheima.controller"))
                .paths(PathSelectors.any()).build()//;
                .securitySchemes(securitySchemes())
                .securityContexts(Collections.singletonList(securityContext()));
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("FH Admin Swagger3 RESTful API")     // 页面标题
                .description("fhadmin.org")                 // 描述
                .contact(new Contact("张三丰", "http://sanfen.com", "150@163.com"))
                .version("3.0")                             // 版本号
                .license("The apache license")
                .licenseUrl("http://www.apache.com.org")
                .build();
    }
    private List<SecurityScheme> securitySchemes() {
        List<SecurityScheme> apiKeyList = new ArrayList<>();
        //注意,这里应对应登录token鉴权对应的k-v
        apiKeyList.add(new ApiKey("Authorization", "Authorization", "header"));
        return apiKeyList;
    }
    /*** 这里设置 swagger2 认证的安全上下文*/
    private SecurityContext securityContext() {
        return SecurityContext.builder().securityReferences(Collections.singletonList(new SecurityReference("Authorization", scopes()))).build();
    }
    /*** 这里是写允许认证的scope*/
    private AuthorizationScope[] scopes() {
        return new AuthorizationScope[]{new AuthorizationScope("web", "All scope is trusted!")};
    }
}

拦截配置

/**
 * 说明:Swagger 拦截配置
 * 作者:FH Admin
 * from fhadmin.org
 */
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.
                addResourceHandler("/swagger-ui/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/")
                .resourceChain(false);
    }
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/swagger-ui/")
                .setViewName("forward:/swagger-ui/index.html");
    }
}

Java使用插件集合

Java生态系统中有许多插件和工具,它们可以帮助开发者提高生产效率、简化开发流程、增强应用程序的功能等。以下是一些常用的Java插件集合及其简介:

  1. Maven
  • 简介:Maven是一个项目管理和构建自动化工具,它使用XML配置文件来定义项目的结构和依赖关系。Maven插件可以扩展其功能,例如编译代码、运行测试、打包应用程序等。
  1. Gradle
  • 简介:Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用Groovy或Kotlin DSL(领域特定语言)来定义构建脚本,提供了灵活性和强大的依赖管理。
  1. Spring Boot
  • 简介:Spring Boot是一个简化Spring应用程序开发的框架,它提供了自动配置和约定大于配置的原则。Spring Boot插件可以帮助开发者快速启动和运行Spring应用程序,包括内嵌的Web服务器、健康检查、外部化配置等。
  1. Lombok
  • 简介:Project Lombok是一个Java库,它通过注解自动生成样板代码,如getter、setter、构造函数、equals和hashCode方法等。这减少了代码量,提高了代码的可读性。
  1. JUnit
  • 简介:JUnit是一个Java编程语言的单元测试框架。JUnit插件可以集成到IDE中,提供测试运行器、代码覆盖率分析等功能,帮助开发者编写和执行测试用例。
  1. Mockito
  • 简介:Mockito是一个Java mock框架,用于编写可读性强的测试。它允许开发者创建和管理模拟对象,以便在测试中隔离被测代码。
  1. Log4j
  • 简介:Log4j是一个Java日志记录工具,它提供了灵活的日志记录配置和多种输出目标。Log4j插件可以帮助开发者配置和管理日志记录,确保应用程序的日志信息清晰和有用。
  1. Hibernate
  • 简介:Hibernate是一个Java持久化框架,它提供了对象关系映射(ORM)功能,简化了数据库操作。Hibernate插件可以集成到IDE中,提供代码生成、查询构建器等功能。
  1. Docker
  • 简介:Docker是一个容器化平台,它允许开发者打包应用程序及其依赖项到一个可移植的容器中。Docker插件可以帮助Java开发者构建、运行和管理Docker容器。
  1. IntelliJ IDEA Plugins
  • 简介:IntelliJ IDEA是一个流行的Java IDE,它提供了大量的插件来增强开发体验,例如代码分析、重构工具、版本控制集成等。

这些插件和工具只是Java生态系统中的一小部分,但它们对于Java开发来说是非常重要的。开发者可以根据自己的需求选择合适的插件来提高开发效率和代码质量。

关注我,不迷路,共学习,同进步

关注我,不迷路,共学习,同进步

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
4月前
|
数据可视化 Java API
Spring Boot与Swagger的集成
Spring Boot与Swagger的集成
|
4月前
|
Java API 开发者
在Spring Boot中集成Swagger API文档
在Spring Boot中集成Swagger API文档
|
1月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
52 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
1月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
84 1
|
2月前
|
前端开发 Java Spring
【非降版本解决】高版本Spring boot Swagger 报错解决方案
【非降版本解决】高版本Spring boot Swagger 报错解决方案
|
2月前
|
Java Spring
springboot 集成 swagger 2.x 和 3.0 以及 Failed to start bean ‘documentationPluginsBootstrapper‘问题的解决
本文介绍了如何在Spring Boot项目中集成Swagger 2.x和3.0版本,并提供了解决Swagger在Spring Boot中启动失败问题“Failed to start bean ‘documentationPluginsBootstrapper’; nested exception is java.lang.NullPointerEx”的方法,包括配置yml文件和Spring Boot版本的降级。
springboot 集成 swagger 2.x 和 3.0 以及 Failed to start bean ‘documentationPluginsBootstrapper‘问题的解决
|
3月前
|
Java API Spring
springboot集成swagger
这篇文章介绍了如何在Spring Boot项目中集成Swagger 2.10.0来生成API文档,包括添加依赖、编写配置类、创建接口文档,并使用Knife4j美化Swagger界面。
|
4月前
|
JSON 缓存 Java
Spring Boot集成 Swagger2 展现在线接口文档
本节课详细分析了 Swagger 的优点,以及 Spring Boot 如何集成 Swagger2,包括配置,相关注解的讲解,涉及到了实体类和接口类,以及如何使用。最后通过页面测试,体验了 Swagger 的强大之处,基本上是每个项目组中必备的工具之一,所以要掌握该工具的使用,也不难。
|
3月前
|
Java
SpringBoot 配置 Swagger
SpringBoot 配置 Swagger
40 0
|
6月前
|
Java Maven
【SpringBoot专题_02】springboot集成Swagger详细教程
【SpringBoot专题_02】springboot集成Swagger详细教程
60 0