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

Posted 简简单单OnlineZuozuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swagger 3 对比于 Swagger 2 更新了哪些内容,做了哪些优化 ?Swagger 3 解读相关的知识,希望对你有一定的参考价值。

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/

以上是关于Swagger 3 对比于 Swagger 2 更新了哪些内容,做了哪些优化 ?Swagger 3 解读的主要内容,如果未能解决你的问题,请参考以下文章

Swagger 2与OpenAPI 3

springboot集成swagger

是否可以在 ASP .NET Core 中使用 Swashbuckle 在 Swagger 2.0 和 Open API 3 格式中公开相同的 Swagger JSON?

SpringBoot: 后台接口文档 - 基于Swagger3

SpringBoot: 后台接口文档 - 基于Swagger3

SpringBoot: 后台接口文档 - 基于Swagger3