swaggerapi/swagger-editorSwagger Editor 是一个基于浏览器的 OpenAPI API 定义编辑器,支持以 JSON 或 YAML 格式编辑 OpenAPI 规范(OpenAPI 2.0 和 OpenAPI 3.0.3),并实时预览文档。生成的有效 OpenAPI 定义可与完整的 Swagger 工具链(代码生成、文档等)配合使用。
该镜像提供了 Swagger Editor 的容器化部署方案,方便用户快速搭建和使用 Swagger Editor 服务。
版本说明: Swagger Editor 目前有两个主要发布渠道:
- SwaggerEditor@4 - 从 master 分支发布,部署于 [***]
- SwaggerEditor@5 - 从 next 分支发布,部署于 [***]
只有 SwaggerEditor@5 支持 OpenAPI 3.1.0。SwaggerEditor@4 不支持 OpenAPI 3.1.0,现已被视为 legacy 版本。官方计划逐步迁移至 SwaggerEditor@5 并在未来弃用 SwaggerEditor@4。
浏览器支持:Swagger Editor 可在最新版本的 Chrome、Safari、Firefox 和 Edge 中运行。
Swagger Editor 镜像发布在 docker.swagger.io registry 上,可直接拉取和运行:
bash# 拉取镜像 docker pull docker.swagger.io/swaggerapi/swagger-editor # 基本运行 docker run -d -p 80:8080 docker.swagger.io/swaggerapi/swagger-editor
上述命令将在后台运行 Swagger Editor,映射到本地 80 端口。通过浏览器访问 http://localhost 即可使用。
可通过 URL 提供指向 API 定义的链接:
bashdocker run -d -p 80:8080 -e URL="[***]" docker.swagger.io/swaggerapi/swagger-editor
或挂载本地 JSON/YAML 定义文件:
bashdocker run -d -p 80:8080 -v $(pwd):/tmp -e SWAGGER_FILE=/tmp/swagger.json docker.swagger.io/swaggerapi/swagger-editor
注意:当同时设置
URL和SWAGGER_FILE环境变量时,URL具有优先级,SWAGGER_FILE将被忽略。
如需在特定路径下访问应用(例如 http://localhost/swagger-editor/),可通过 BASE_URL 变量指定:
bashdocker run -d -p 80:8080 -e BASE_URL=/swagger-editor docker.swagger.io/swaggerapi/swagger-editor
默认容器内部端口为 8080,可通过 PORT 变量修改:
bashdocker run -d -p 80:80 -e PORT=80 docker.swagger.io/swaggerapi/swagger-editor
可通过 GTM 变量指定 Google Tag Manager ID 以跟踪使用情况:
bashdocker run -d -p 80:8080 -e GTM=GTM-XXXXXX docker.swagger.io/swaggerapi/swagger-editor
可通过以下环境变量自定义 Swagger Editor 使用的不同端点,这在拥有自己的 Swagger 生成器服务器时非常有用:
| 环境变量 | 默认值 |
|---|---|
URL_SWAGGER2_GENERATOR | [***] |
URL_OAS3_GENERATOR | [***] |
URL_SWAGGER2_CONVERTER | [***] |
如果想在本地运行 Swagger Editor 而不使用 Codegen 功能(Generate Server 和 Generate Client),可将上述环境变量设置为 null:
bashdocker run -d -p 80:8080 -e URL_SWAGGER2_CONVERTER=null docker.swagger.io/swaggerapi/swagger-editor
yamlversion: '3' services: swagger-editor: image: docker.swagger.io/swaggerapi/swagger-editor container_name: swagger-editor restart: always ports: - "80:8080" environment: - BASE_URL=/swagger-editor - PORT=8080 # - URL="[***]" # - GTM=GTM-XXXXXX # - URL_SWAGGER2_GENERATOR=null # - URL_OAS3_GENERATOR=null # - URL_SWAGGER2_CONVERTER=null volumes: # 可选:挂载本地文件 # - ./swagger.json:/tmp/swagger.json networks: - swagger-network networks: swagger-network: driver: bridge
如果需要基于源码构建本地镜像,可执行以下步骤:
bash# 克隆仓库(如果尚未克隆) git clone [***] cd swagger-editor # 安装 npm 依赖(如需) npm install # 构建应用 npm run build # 构建 Docker 镜像 docker build -t swagger-editor . # 运行容器 docker run -d -p 80:8080 swagger-editor
构建完成后,通过浏览器访问 http://localhost 即可使用。
如发现任何与安全相关的问题或漏洞,请发送电子邮件至 ***,而非使用公共 issue 跟踪器。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务