Swagger/OpenAPI 查看器
在线渲染 OpenAPI 2.0/3.0 规范文档,支持 JSON 和 YAML 格式,完整解析 $ref 引用,支持解析后在线预览、在线调试、在线生成pdf、下载pdf。
点击「生成文档」查看 API 结构
关于 OpenAPI / Swagger
- OpenAPI 规范(OAS)是描述 RESTful API 的行业标准,前身即 Swagger 2.0
- 当前主流版本为 OpenAPI 3.0 / 3.1,支持 JSON 和 YAML 两种格式
- 本工具使用 Swagger UI 官方组件渲染,完整支持
$ref引用展开、数据模型展示、认证信息等 - 常见工具链:Swagger UI(可视化)、OpenAPI Generator(代码生成)、Redoc(文档渲染)
操作说明
- 粘贴 OpenAPI JSON 或 YAML 规范到左侧输入框,点击「渲染文档」
- 点击「导入」可选择本地
.json/.yaml/.yml文件,或直接拖拽文件到输入区域 - 选择「JSON 示例」或「YAML 示例」可快速填入演示规范体验渲染效果
- 快捷键:Ctrl + Enter 执行渲染
- 渲染后可在右侧展开各接口查看参数、响应及 Schema 详情;点击「新窗口打开」可全屏浏览
- 点击「导出 PDF」可将当前规范生成结构化 PDF 文档,包含接口列表、请求参数、响应及数据模型
注意事项
- 「Try it out」功能需要目标 API 服务器支持 CORS,本地规范无法直接发起请求
- 超大规范文件(>1MB)渲染可能稍慢,建议拆分后分批查看
- 所有数据在浏览器本地处理,不会上传到服务器;导出 PDF 功能需将规范内容发送至服务端生成,不会持久化存储
OpenAPI / Swagger 知识详解
Swagger 2.0 vs OpenAPI 3.0 vs 3.1 对比
| 对比项 | Swagger 2.0 | OpenAPI 3.0 | OpenAPI 3.1 |
|---|---|---|---|
| 发布时间 | 2014 | 2017 | 2021 |
| 根字段 | swagger: "2.0" |
openapi: "3.0.x" |
openapi: "3.1.x" |
| 服务器定义 | host + basePath |
servers 数组(支持多服务器) |
|
| 请求体 | in: body 参数 |
requestBody 独立字段 |
|
| JSON Schema 兼容 | 部分兼容(子集) | 部分兼容(扩展子集) | 完全兼容 JSON Schema Draft 2020-12 |
| Webhook 支持 | ❌ | ❌ | ✅ 原生支持 |
| 工具生态 | 成熟,大量遗留工具 | 主流,广泛支持 | 逐步普及中 |
OpenAPI 3.0 文档核心结构
openapi: 3.0.0
info: # 文档元信息
title: ...
version: ...
servers: # 服务器地址列表
- url: ...
paths: # 接口路径定义
/users:
get: ...
post: ...
components: # 可复用组件
schemas: ... # 数据模型
securitySchemes: ...
security: # 全局安全要求
tags: # 接口分组标签
| 字段 | 说明 | 必填 |
|---|---|---|
openapi | 规范版本号 | ✅ |
info | API 标题、版本、描述 | ✅ |
paths | 所有接口路径及操作 | ✅ |
servers | 服务器 URL 列表 | ❌ |
components | 可复用的 Schema、参数等 | ❌ |
security | 全局认证方案 | ❌ |
tags | 接口分组标签定义 | ❌ |
$ref 引用机制详解
$ref 是 JSON Reference 标准,用于在文档内部或跨文件复用定义,避免重复描述相同的数据结构。
文档内部引用(最常用)
# 定义(components/schemas)
components:
schemas:
User:
type: object
properties:
id:
type: string
# 引用
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/User'
可引用的组件类型
| 路径前缀 | 用途 |
|---|---|
#/components/schemas/ | 数据模型 |
#/components/parameters/ | 请求参数 |
#/components/responses/ | 响应定义 |
#/components/requestBodies/ | 请求体 |
#/components/headers/ | 响应头 |
#/components/securitySchemes/ | 认证方案 |
常见认证方案配置
| 认证类型 | 配置示例 | 适用场景 |
|---|---|---|
| Bearer JWT | type: http, scheme: bearer, bearerFormat: JWT |
现代 REST API,前后端分离 |
| API Key | type: apiKey, in: header, name: X-API-Key |
开放平台、第三方集成 |
| OAuth 2.0 | type: oauth2, flows: { authorizationCode: ... } |
需要用户授权的场景 |
| Basic Auth | type: http, scheme: basic |
内部系统、简单场景(不推荐生产) |
| OpenID Connect | type: openIdConnect, openIdConnectUrl: ... |
企业 SSO、身份联合 |
OpenAPI 生态工具链
| 工具 | 用途 | 说明 |
|---|---|---|
| Swagger UI | 可视化渲染 | 官方交互式文档,支持在线调试(本工具使用) |
| Redoc | 文档渲染 | 三栏布局,适合对外发布的 API 文档 |
| OpenAPI Generator | 代码生成 | 从规范生成 50+ 语言的客户端/服务端代码 |
| Stoplight Studio | 可视化编辑 | GUI 方式设计 API,无需手写 YAML/JSON |
| Spectral | 规范校验 | 自定义规则校验 OpenAPI 文档质量 |
| Prism | Mock 服务器 | 根据规范自动生成 Mock API,前端可提前联调 |