Skip to content

参考

基于 Swagger UI 5.32.6 编写

速查

  • Swagger UI=把 OpenAPI 规范渲染成可交互文档的静态资源,只渲染不生成;OpenAPI=规范,Swagger=工具套件
  • 三 flavor(均 5.32.6,Apache-2.0):swagger-ui / swagger-ui-dist(含 absolutePath()、全局 Bundle/Preset)/ swagger-ui-react(peer react >=16.8 <20,props mount-only)
  • 入口 SwaggerUIBundle({...});独立版 SwaggerUIStandalonePreset + layout: "StandaloneLayout"
  • 喂 spec:url / spec / urls(+primaryName);spec 与 url 同传则 url 被忽略
  • 默认值要记牢:deepLinking false、tryItOutEnabled false、docExpansion "list"、defaultModelsExpandDepth 1(-1 隐藏 Models)、syntaxHighlight.theme agate、validatorUrl 公网 validator、persistAuthorization false
  • 支持规范:Swagger 2.0 + OAS 3.0.x / 3.1.x / 3.2.0

配置项速查

配置默认作用
dom_id / domNode——挂载点,二选一必填
url——单份 spec 地址
spec——内联 spec 对象(给了则 url 被忽略
urls——多文档下拉数组;urls.primaryName 指定默认
configUrl——远程下发 Swagger UI 配置
layout"BaseLayout"布局;独立版用 "StandaloneLayout"
deepLinkingfalse开后生成 #/{tag}/{operationId} 锚点
docExpansion"list""full" / "none"
defaultModelsExpandDepth1-1 隐藏 Models 区块
defaultModelRendering"example""example" 示例值 / "model" 结构树
tryItOutEnabledfalse所有操作默认进入 Try it out
filterfalse顶部过滤框,按 tag 过滤
displayOperationIdfalse显示 operationId
displayRequestDurationfalse显示请求耗时
operationsSorter / tagsSorter——"alpha" / "method" 或函数
syntaxHighlight.theme"agate"高亮主题;syntaxHighlight: false 关高亮
showExtensions / showCommonExtensionsfalse显示 x- 扩展 / 参数常见约束
validatorUrlhttps://validator.swagger.io/validator"none" 禁用在线校验
withCredentialsfalse跨域请求带凭据
persistAuthorizationfalse刷新保留授权(落 localStorage)
requestInterceptor / responseInterceptor——请求发出前 / 收到响应后介入
supportedSubmitMethodsget/put/post/delete/options/head/patch/trace允许 Try it out 的方法白名单
oauth2RedirectUrl——OAuth2 回调地址

实例方法

方法作用
initOAuth(configObj)配置 OAuth2(clientId / scopes / usePkceWithAuthorizationCodeGrant 等)
preauthorizeApiKey(key, value)预填某 API Key 安全方案的值
preauthorizeBasic(...)预填 HTTP Basic 凭据

OAuth 配置字段速查

字段作用
clientId客户端标识
clientSecret客户端密钥——严禁生产前端(必然暴露)
scopes请求的权限范围
scopeSeparator多 scope 分隔符(默认空格)
usePkceWithAuthorizationCodeGrant授权码模式启用 PKCE(公共客户端推荐)
useBasicAuthenticationWithAccessCodeGrant换 token 时用 HTTP Basic 传 client 凭据

三种渲染器对比

维度Swagger UIRedocScalar
是否生成 spec
布局单栏三栏只读现代 UI
内置调试Try it out(最成熟)开源版无更强的 API 客户端
适合可交互文档 / 调试、生态最通用精美只读对外发布现代观感 + 强调试

常见坑速查

真相
以为它生成文档只渲染 spec,生成靠后端扫描器 / 手写
混淆 OpenAPI 与 SwaggerOpenAPI=规范,Swagger=工具套件
Try it out 报 CORS目标接口服务端没开 CORS,去后端加响应头
clientSecret 配生产前端必然暴露=泄密,改用 PKCE
运行时改 react props 不生效props 多为 mount-only,用 key 强制重挂载
有打包器仍用 distdist 体积更大,有打包器用 swagger-ui
spec 与 url 同传url 被忽略,spec 优先
OAS 3.0 Cookie 参数浏览器禁止头,Try it out 发不出
validator 默认联网私有部署设 validatorUrl: "none"
deepLinking 默认关要锚点须显式开

版本与许可

版本说明
swagger-ui5.32.6带打包器项目首选
swagger-ui-dist5.32.6服务端分发静态资源
swagger-ui-react5.32.6React 组件(peer react >=16.8 <20

三包同为 5.32.6(2026-05-12 发布),均 Apache-2.0。支持 Swagger 2.0 + OpenAPI 3.0.x / 3.1.x / 3.2.0。

文档与链接

返回:三种交付形态 · 配置项详解 · Try it out 与 CORS · OAuth 与对比选型