OpenApi-v3 - Swagger 代码示例

SpringBoot3整合OpenAPI3(Swagger3)完整指南 摘要: 本文详细介绍了 Spring Boot 3 集成 OpenAPI 3(Swagger 3)的完整流程,包括环境配置、依赖管理、基础与高级功能实现。主要内容涵盖:零配置快速启动、自定义全局信息、核心注解使用(如 @Tag、@Operation)、DTO 模型定义、多分组 API 文档配置、JWT 安全认证集成,以及生产环境优化(动态开关、权限控制)。同时提供了 Knife4j 增强 UI 方案和常见问题解决方法,适用于开发规范的 RESTful API 文档。 阅读详情
openapi: 3.0.0
info:
  description: |
    名称:xxxx API。  
    工具:[swagger](http://swagger.io)  
    规范:[openapi v3.0.0](https://www.openapis.org/)  
  version: "1.8.0"
  title: xxxxxx API Of xxx
  contact:
    email: cloudy.w.h.luo@hsbc.com.cn
  license:
    name: xxxx Privacy (No Public)
    url: 'https://www.xxxx.com.hk/zh-cn'
tags:
  - name: user
    description: 用户信息接口
    externalDocs:
      description: 更详细的API描述,请查看
      url: 'http://xxxxx'
paths:
  /api/ad/getinfo:
    get:
      tags:
        - user
      summary: AD验证,成功则返回用户信息
      operationId: getUserGroupById
      parameters:
        - name: appid
          in: query
          description: APP 的 ID.
          required: true
          schema:
            type: string
        - name: adaccount
          in: query
          description: AD 账号.
          required: true
          schema:
            type: string
        - name: adpassword
          in: query
          description: AD 密码.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: AD验证成功
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
            application/xml:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: 参数错误
        '401':
          description: 无权限(APP)
        '403':
          description: 无权限(AD用户)
        '404':
          description: 账号或密码错误
  '/api/ad/queryuser/{adaccount}':
    get:
      tags:
        - user
      summary: 获取某个用户的详细信息
      description: 获取某个用户的详细信息
      operationId: getUserDetailById
      parameters:
        - name: adaccount
          in: path
          description: AD 账号.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
            application/xml:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: Invalid username supplied
        '404':
          description: User not found
  '/api/ad/updateuser/{adaccount}':
    put:
      tags:
        - user
      summary: 修改某个用户的信息
      description: 需要验证授权码后才能操作(request header中带token参数).
      operationId: updateUserById
      parameters:
        - name: adaccount
          in: path
          description: AD 账号
          required: true
          schema:
            type: string
        - name: token
          in: header
          description: 授权码
          required: true
          schema:
            type: string
      responses:
        '400':
          description: 参数错误
        '401':
          description: 无权限(APP)
        '404':
          description: 用户不存在
  '/api/ad/deleteuser/{adaccount}':
    delete:
      tags:
        - user
      summary: 删除一个用户
      description: 需要验证授权码后才能操作.
      operationId: deleteUserById
      parameters:
        - name: adaccount
          in: path
          description: AD 账号
          required: true
          schema:
            type: string
        - name: token
          in: header
          description: 授权码
          required: true
          schema:
            type: string
      responses:
        '400':
          description: 参数错误
        '401':
          description: 无权限(APP)
        '404':
          description: 用户不存在
servers:
  - url: 'https://virtserver.swaggerhub.com/xxxx/Active-Directory-API/1.8.0'
  - url: 'http://virtserver.swaggerhub.com/xxxx/Active-Directory-API/1.8.0'
components:
  requestBodies:
    UserArray:
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/User'
      description: List of user object
      required: true
  securitySchemes:
    petstore_auth:
      type: oauth2
      flows:
        implicit:
          authorizationUrl: 'http://petstore.swagger.io/oauth/dialog'
          scopes:
            'write:pets': modify pets in your account
            'read:pets': read your pets
    api_key:
      type: apiKey
      name: api_key
      in: header
  schemas:
    User:
      type: object
      properties:
        code:
          type: integer
          format: int4
          description: 状态码
        msg:
          type: string
          description: 返回提示
        fullname:
          type: string
          description: 用户全名
        groups:
          type: string
          description: 用户组列表
        email:
          type: string
          description: 邮箱
        token:
          type: string
          description: 授权码
        timestamp:
          type: string
          description: 授权时间
      xml:
        name: User

附:IRIS OpenAPI 2.0规范创建REST服务示例 IRIS OpenAPI 2.0规范创建REST服务示例 阅读详情

相关推荐

⚡什么是 OpenAPI,优势、劣势及示例

想象一下,你正在阅读一个 Microsoft Word(.docx)格式的传统规范文档。这份传统规范文档提供了系统的广泛背景,并描述了其组件以及与其他系统的交互。传统规范的结构往往各不相同。而像 OpenAPI 这样的API规范,其结构是严格的。如果API规范符合另一种格式,如 RAML 或 API Blueprint,那么该文档将遵循该格式的结构。回到 OpenAPI 如何定义 API 的问题上,你经常会听到“规范”和“定义”这两个词被当作同义词使用。API 规范“定义”了一个 API。

weixin_47077674的博客 4699

OpenAPI v3:Rust中的高效API规范解析工具

OpenAPI v3:Rust中的高效API规范解析工具 项目介绍 OpenAPI v3 是一个基于Rust语言的开源项目,旨在提供对OpenAPI v3.0.x规范的数据结构表示。该项目通过Rust的强大类型系统和高效的内存管理,为用户提供了一个简洁、高效的API规范解析工具。尽管OpenAPI v3.1版本带来了不兼容的更改,但本项目专注于v3.0.x版本,确保了稳定性和广泛的兼容性。 项目技...

gitblog_00529的博客 1019

Springboot整合Swagger3全注解配置(springdoc-openapi-ui)

Sprinboot2.4整合Swagger3(springdoc-openapi-ui)一、创建Springboot项目,引入pom依赖二、配置类请求头携带token三、配置文件四、接口定义五、实现类六、实体类定义七、运行项目查看效果 参考文档:https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X—Annotations 一、创建Springboot项目,引入pom依赖 <dependency>

weixin_44768189的博客 4万+

开源项目openapiv3常见问题解决方案

开源项目openapiv3常见问题解决方案 项目基础介绍 openapiv3 是一个用Rust编程语言编写的开源项目,它提供了一组数据结构,用于表示OpenAPI v3.0规范。该项目的目标是实现易于反序列化的数据结构,以便在Rust中方便地处理OpenAPI的定义。 主要编程语言 Rust 新手常见问题与解决方案 问题一:如何添加项目依赖? 问题描述: 新手在使用项目时,不知道如何将open...

gitblog_00335的博客 983

Spring Boot整合Swagger3(OpenAPI3)生成接口文档

都说好记性不如烂笔头,每天写一点,从量变到质变的开始!废话不多说,以下所有内容均来自本人实际操作: 1.为什么使用Swagger3(OpenAPI3)? swagger官方文档介绍的功能太过复杂,作为一个后端开发,我们往往只需要用它来自动生成接口文档,而Swagger2早就不维护了,因此通过这篇博客找到了springdoc官网 springdoc-openapi Java库有助于使用Spring Boot项目自动生成API文档.springdoc-openapi的工作原理是在运行时检查应用程序,以基于

weixin_42759726的博客 9385

Springboot3整合OpenAPI(Swagger3)

Swagger是一个用于设计、构建、记录和使用RESTful web服务的开源软件框架。Swagger 3(OpenAPI 3.0)提供了更加强大和灵活的API文档生成能力。本教程将指导您如何在Spring Boot 3项目中集成Swagger3,并使用Knife4j作为UI界面。在拦截器的配置中把swagger的所有请求路径加到拦截器的排除列表。在这里,您可以查看API文档,测试API接口,并获取相关信息。在您的实体类和控制层中使用Swagger注解来描述API。,并添加Swagger的配置信息。

2301_76592091的博客 1683

【SpringBoot整合系列】SpringBoot3.x整合Swagger

2601_96206294的博客 173

openapi-viewer:浏览并测试OpenAPI 3.0规范中描述的REST API

OpenAPI 3查看器 此服务旨在轻松浏览和测试(fka Swagger规范)中描述的REST API。 该服务主要使用组件。 它还提供了一个简单的用于代理目的的nodeJS后端。 实际操作: 安装 克隆该项目,然后使用npm install或yarn安装依赖项: npm run dev 使用Docker启动服务 Docker映像在上公开可用。 运行以下命令: docker run -p 8080:8080 koumoul/openapi-viewer 并转到此 查询参数 您可以使用以下查询参数来预填充查看器 url :要加载的API文档文件的位置,采用OpenAPI v3 JSON格式。 proxy :如果要使用此服务后端作为代理来获取API文档文件,则为true或false。 默认为false。 如果无法通过CORS标头访问API描述,则可能很有用。 如果要访问位于loc

SpringBoot3整合swagger(springdoc-openapi)

SpringBoot3、swagger3、springdoc-openapi、jdk17

蓝影铁哥的博客 1万+

【STM32】IEC60730 Class B软件安全实现 Part2:自检库实战指南

本文是STM32 IEC60730 Class B软件安全实现的实战指南,详细介绍了如何将X-CUBE-CLASSB自检库集成到用户项目中。内容涵盖软件包解构、内存划分、启动与运行时自检的集成步骤、关键代码示例及调试技巧,并阐述了为最终通过安全认证所需的文档与流程准备,帮助开发者高效实现MCU功能安全。

weixin_29185167的博客 92

海康/大华设备如何接入GB28181平台?最新2022版互联避坑指南

本文详细解析了海康/大华设备接入GB28181平台的最新2022版互联避坑指南,涵盖参数配置、实时视音频点播协议交互及典型故障排查。重点介绍了GB/T28181-2022标准下的设备编码规范、SIP服务器配置及媒体流保活机制,帮助工程团队高效解决设备离线和媒体流中断等问题。

weixin_30733003的博客 688

OpenApi3/Swagger3简单使用及与swagger2对比

Swagger 3 的使用 Swagger2已经在17年停止维护了,取而代之的是 Swagger3(基于openApi3),这篇文章将介绍如何在 java 中使用 OpenApi3(swagger3)以及与swagger2的对比。 1.基本介绍 1.1 Open API OpenApi是业界真正的 api 文档标准,其是由 Swagger 来维护的,并被linux列为api标准,从而成为行业标准。 1.2 Swagger swagger 是一个 api 文档维护组织,后来成为了 Open AP

loki的博客 1万+

别再纠结了!手把手教你根据项目需求选对目标检测框架(MMDetection/Detectron2/YOLOv8实战对比)

本文详细对比了三大目标检测框架MMDetection、Detectron2和YOLOv8的适用场景与实战技巧,帮助开发者根据项目需求精准选型。从毕业设计到工业落地,分析不同场景下的核心需求与框架优势,提供决策树和避坑指南,确保技术选型与项目目标高度匹配。

weixin_30342209的博客 554

Swagger升级指南:Swagger2与Swagger3注解差异揭秘

Swagger3(OpenAPI 3)是对Swagger2的一个重大升级,它不仅提供了更多的新特性,也带来了注解的变化。虽然迁移可能需要一些工作,但新的规范和特性是值得的。本文提供了一个基础的迁移指南和注解对比,帮助大家理解如何从Swagger2迁移到Swagger3,并利用它来更好地文档化API。

果酱 の 博客 1万+

道家学派创始人老子,对 SAP ABAP 这门编程语言的客观评价

SAP HANA 之引入,使 ABAP 于处理大数据,云计算等新兴领域,展现新的生命力,如老吾老以及人之老,幼吾幼以及人之幼,扩展其在信息技术领域的应用,以涵养更广之需。ABAP 能以数据为基,流转于系统之中,如道法自然,顺应企业之生态,助之以高效运转,减少冗杂,简化管理,使企之运营,如小国寡民,无为而治。然 ABAP 如老树盘根,更替不易,面对新兴技术,如云计算、大数据等,其更新之速,未能与时俱进。如水之于渊,柔而能胜刚,ABAP 之发展,顺时而动,应需而变,其在编程领域,犹如道之于万物,渐不可或缺矣。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1027

[QMT量化交易小白入门]-104、QMT平台运行深度学习模型,预测期货价格

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 485

spingboot3集成swagger3/openapi3

spring boot 3集成swagger 3 openapi 3 使用指南 注解源码 获取openapi文档 官方中文文档

weixin_44005802的博客 2599

建模simulink - 手把手教你搭建xpc平台

概述xpc半实物仿真目标是个基于RTW对低端实时仿真和开发平台,可将计算机或者工控机转变为一个实时系统,不需要第三方操作系统对支持,在计算机上配置输入输入出设备就能和外部交换信息,进行硬件...

不只会拍照的程序猿 7088

Swagger3 注解使用(Open API 3)

swagger 3 的使用 Swagger2(基于openApi3)已经在17年停止维护了,取而代之的是 sagger3(基于openApi3),而国内几乎没有 sagger3使用的文档,百度搜出来的都是swagger2的使用,这篇文章将介绍如何在 java 中使用 openApi3(swagger3)。 相关介绍 Open API OpenApi是业界真正的 api 文档标准,其是由 Swagg...

qq_35425070的博客 11万+

MSVS C# Matlab的混合编程系列2 - 构建一个复杂(含多个M文件)的动态库:

本节我们尝试将一个有很多函数和文件的Matlab算法文件集成到C#的项目里面。

山云的专栏 2070

【时时三省】tessy 集成测试:小白入门指导手册

有图有文字详细介绍 tessy 集成测试 操作方法。

时时三省的博客 2517

OpenAPI3与Swagger

Swagger 可以快速生成文档,方便前后开发人员进行协调沟通。遵循规范。

m0_70686037的博客 738

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

从Swagger 2.0到OpenAPI 3.0:swagger-blocks无缝迁移指南,一次掌握9种components块

swagger-blocks 是一个专为 Ruby 应用打造的 API 文档工具,让你用纯 Ruby DSL 编写 Swagger / OpenAPI 定义,并实时生成可被 Swagger UI 渲染的 JSON。改一行代码、刷新页面,文档即刻更新——无需构建脚本、无需静态文件。本文带你从 Swagger 2.0 平滑迁移到 OpenAPI 3.0,并一次讲清 components 下 9 种子块

gitblog_00907的博客 1067

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

OpenApi和Swagger2 Swagger3的关系

OpenApi Swagger2 Swagger3的关系

不是很懂 2万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

springboot3整合swagger3.0之knife4j-openapi3

markdown文件路径,可以是一个文件夹(classpath:markdowns/*),也可以是单个文件(classpath:md/sign.md)针对RequestMapping的接口请求类型,在不指定参数类型的情况下,如果不过滤,默认会显示7个类型的接口地址参数,是否开启界面中对某接口的版本控制,如果开启,后端变化后Ui界面会存在小蓝点。是否开启一个默认的跨域配置,该功能配合自定义Host使用。调试Tab是否显示AfterScript功能,默认开启。类似于接口中的tag,对于自定义文档的分组。

施小楠的博客 2589
上一篇: 解除网页右键限制
下一篇: Java 占位符 例子 - 消息模板
Fantacy.
博客等级 码龄15年 53粉丝 119原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值