swagger3(openapi)

本文介绍了如何在SpringDoc1.7.0和2.3.0版本中配置Swagger3.0(OpenAPI),包括添加联系人信息、授权许可、文档描述,以及Swagger2.0到3.0注解的替换。还展示了如何使用`GroupedOpenApi`进行API分组和`application.yml`配置。
摘要由CSDN通过智能技术生成

之前写了一篇基于swagger2版本常用的注解(不太详细),现在更新一版swagger3(openapi)版本的内容,用于后续使用查阅。

maven依赖

        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-ui</artifactId>
            <version>1.7.0</version>
        </dependency>

这里没直接用starter(很重)

   <dependency>
      <groupId>org.springdoc</groupId>
      <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
      <version>2.3.0</version>
   </dependency>
springdoc-openapi-starter-webmvc-ui是一个 Maven Starter,
它包含了 springdoc-openapi-webmvc-core、springdoc-openapi-ui 
和 spring-boot-starter-web
package com.yifan_study.org.config;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import org.springdoc.core.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.HashMap;

@Configuration
public class SwaggerOpenApiConfig {

    @Bean
    public OpenAPI customOpenAPI() {

        // 联系人信息(contact),构建API的联系人信息,用于描述API开发者的联系信息,包括名称、URL、邮箱等
        // name:文档的发布者名称 url:文档发布者的网站地址,一般为企业网站 email:文档发布者的电子邮箱
        Contact contact = new Contact()
                .name("鞠七")                             // 作者名称
                .email("xxxxx@163.com")                   // 作者邮箱
                .url("https://blog.csdn.net/fengyifanjin?type=blog")  // 介绍作者的URL地址
                .extensions(new HashMap<String, Object>()); // 使用Map配置信息(如key为"name","email","url")

        // 授权许可信息(license),用于描述API的授权许可信息,包括名称、URL等;假设当前的授权信息为Apache 2.0的开源标准
        License license = new License()
                .name("Apache 2.0")                         // 授权名称
                .url("https://www.apache.org/licenses/LICENSE-2.0.html")    // 授权信息
                .identifier("Apache-2.0")                   // 标识授权许可
                .extensions(new HashMap<String, Object>());// 使用Map配置信息(如key为"name","url","identifier")

        //创建Api帮助文档的描述信息、联系人信息(contact)、授权许可信息(license)
        Info info = new Info()
                .title("Swagger3.0 (Open API) 框架学习示例文档")      // Api接口文档标题(必填)
                .description("学习Swagger框架而用来定义测试的文档")     // Api接口文档描述
                .version("1.2.1")                                  // Api接口版本
                //.termsOfService("https://example.com/")            // Api接口的服务条款地址
                .license(license)                                  // 设置联系人信息
                .contact(contact);                                 // 授权许可信息
        // 返回信息
        return new OpenAPI()
                .openapi("3.0.1")  // Open API 3.0.1(默认)
                .info(info);       // 配置Swagger3.0描述信息
    }


    @Bean
    public GroupedOpenApi yiFanStudyOrgApi() {
        return GroupedOpenApi.builder()
                .group("yifan_studyOrg")
                .packagesToScan("com.yifan_study.org")
                .build();
    }

    @Bean
    public GroupedOpenApi yiFanStudyDemoApi() {
        return GroupedOpenApi.builder()
                .group("yifan_studyDemo")
                .packagesToScan("com.yifan_study.demo")
                .build();
    }
}

上面这两个GroupedOpenApi 是进行分组用的不分组可以写一个(下图解释)
在这里插入图片描述

上面是配置改动
下面是application.yml

springdoc:
  api-docs:
    path: /springdoc  #ip+端口/springdoc  访问swagger文档
    enabled: true
  swagger-ui:
    path:  /swagger-ui.html  #ip+端口/swagger-ui.html 访问swagger页面
    enabled: true

swagger2—》swagger3(openapi) 注解替换

@Api@Tag

@ApiIgnore@Parameter(hidden = true)@Operation(hidden = true)@Hidden

@ApiImplicitParam@Parameter

@ApiImplicitParams@Parameters

@ApiModel@Schema

@ApiModelProperty(hidden = true)@Schema(accessMode = READ_ONLY)

@ApiModelProperty@Schema

@ApiOperation(value = "foo", notes = "bar")@Operation(summary = "foo", description = "bar")

@ApiParam@Parameter

@ApiResponse(code = 404, message = "foo")@ApiResponse(responseCode = "404", description = "foo")
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Swagger 是一种用于构建、设计和文档化 RESTful API 的工具。它提供了一个简单易用的界面,让开发者可以定义 API 的各种细节,包括端点、参数、请求和响应等。Swagger 还可以根据用户的定义自动生成 OpenAPI JSON,这是一种机器可读的 API 文档格式。 Swagger 生成 OpenAPI JSON 的过程非常简单。首先,我们需要在 Swagger 的配置文件或注解中定义我们的 API。在定义 API 时,我们需要指定每个端点的路径、请求方法、请求参数、请求体和响应内容等。为了使生成的 OpenAPI JSON 更加准确和完整,我们还可以添加其他的元数据,比如 API 的标题、描述、版本号等。 当我们完成 API 的定义后,我们可以使用 Swagger 提供的工具自动生成 OpenAPI JSON。通常,我们只需要运行一条命令或点击一个按钮,Swagger 就会根据我们的定义扫描我们的 API,并生成一份符合 OpenAPI 规范的 JSON 文件。这份文件包含了 API 的详细信息,包括端点的路径、请求方法、请求和响应的参数等。生成的 JSON 文件可以供其他开发者和工具使用,比如用于生成文档、进行代码生成等。 总之,Swagger 是一个强大的工具,可以帮助我们快速构建、设计和文档化 RESTful API。通过定义 API,并使用 Swagger 提供的工具生成 OpenAPI JSON,我们可以更方便地与其他开发者进行协作,并提供高质量的 API 文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值