Swagger 3 对比于 Swagger 2 更新了哪些内容,做了哪些优化 ?Swagger 3 解读

@[toc]

Swagger 3 对比于 Swagger 2 更新了哪些内容,做了哪些优化 ?Swagger 3 解读


如果觉得本文对你有帮助,可以一键三连支持,谢谢

相关阅读

Related Reading OpenAPI Specification

Related Reading Swagger - 魔改版本的 bootstrap swagger UI 页面 ,springboot 集成

Related Reading Swagger2 - 构建一个基本的 Swagger2Configuration 的接口,降低类的出错率和复杂性

Related Reading 基于Swagger2构建Restfu API在线文档并进行接口的测试

Related Reading 使用Swagger2构建文档内容

传送门


Portal Swagger 官网地址

Process 支持 OpenApi


OpenApi 是一种 REST API 的描述格式,通过既定的规范来描述文档接口,它是业界真正的 API 文档标准,可以通过 YAML 或者 JSON 来描述

OpenAPI Specification (formerly Swagger Specification) is an API description format for REST APIs. An OpenAPI file allows you to describe your entire API, including:

Available endpoints (/users) and operations on each endpoint (GET /users, POST /users)

Operation parameters Input and output for each operation

Authentication methods

Contact information, license, terms of use and other information.

API specifications can be written in YAML or JSON. The format is easy to learn and readable to both humans and machines. The complete OpenAPI Specification can be found on GitHub: OpenAPI 3.0 Specification

具体了解可以参考 OpenAPI Specification

Process 提供更方便的依赖形式


Swagger 3 版本只需要一个 starter 依赖即可完成引入


<dependency>

    <groupid>io.springfox</groupid>

    <artifactid>springfox-boot-starter</artifactid>

    <version>3.0.0</version>

</dependency>

Swagger 3 版本之前则需要两个


<dependency>

    <groupId>io.springfox</groupId>

    <artifactId>springfox-swagger2</artifactId>

    <version>2.9.2</version>

</dependency>

<dependency>

    <groupId>io.springfox</groupId>

    <artifactId>springfox-swagger-ui</artifactId>

    <version>2.9.2</version>

</dependency>

另外,和 Spring Boot 中的其他 starter 一样,springfox-boot-starter 依赖可以实现零配置

以及自动配置支持。也就是说,如果你没有其他特殊需求,加一个这个依赖就行了,接口文档就自动生成了

Process 接口地址的变化


Swagger 3 版本的接口地址为

文档接口地址:http://localhost:8080/v3/api-docs

文档页面地址:http://localhost:8080/swagger-ui/index.html

Swagger 3 版本之前的接口地址为

文档接口地址:http://localhost:8080/v2/api-docs

文档页面地址:http://localhost:8080/swagger-ui.html

版本之间接口地址没有兼容,访问旧的地址会 404

Process 注解的变化


Swagger 3 版本之前旧的注解可以继续使用,另外额外新增了一些注解

@EnableOpenApi 代替了之前的 @EnableSwagger2

但是这个注解可以不加,因为 Swagger 3 进行了自动配置,具体可以看如下代码


@Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)

@Target(value = {java.lang.annotation.ElementType.TYPE})

@Documented

@Import(OpenApiDocumentationConfiguration.class)

public @interface EnableOpenApi {

}


@Configuration

@EnableConfigurationProperties(SpringfoxConfigurationProperties.class)

@ConditionalOnProperty(value = "springfox.documentation.enabled", havingValue = "true", matchIfMissing = true)

@Import({

    OpenApiDocumentationConfiguration.class,

    SpringDataRestConfiguration.class,

    BeanValidatorPluginsConfiguration.class,

    Swagger2DocumentationConfiguration.class,

    SwaggerUiWebFluxConfiguration.class,

    SwaggerUiWebMvcConfiguration.class

})

@AutoConfigureAfter({ WebMvcAutoConfiguration.class, JacksonAutoConfiguration.class,

    HttpMessageConvertersAutoConfiguration.class, RepositoryRestMvcAutoConfiguration.class })

public class OpenApiAutoConfiguration {

}

注意 OpenApiDocumentationConfiguration 两个位置都导入了

我们可以通过 springfox.documentation.enabled=false 来关闭 Swagger 3

Process Docket 的变化


Swagger 3 版本需要把文档信息类型设置为 OAS_3,Swagger 3 版本之前则是 SWAGGER_2


参考资料

Reference Resources Swagger 文档

本文地址 https://wretchant.blog.csdn.net/article/details/117769859

博客地址 https://wretchant.blog.csdn.net/

blogs
79 views
Comments
登录后评论
Sign In