You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Docker Compose部署的Swagger-UI中配置启用requestSnippets

解决Docker Compose部署Swagger-UI启用requestSnippets的配置问题

你当前的配置存在几个关键问题,以下是具体修正方案:

1. 让Swagger UI加载自定义配置文件

你的docker-compose.yml已挂载配置文件,但Swagger UI默认不会自动读取该路径的文件,必须通过SWAGGER_CONFIG_URL环境变量指定配置文件位置:

修正后的docker-compose.yml:

---
version: '3.8'
services:
  swagger:
    image: swaggerapi/swagger-ui:latest
    container_name: swagger
    environment:
      # 注意:若后端服务在同一Docker Compose网络内,将localhost替换为后端服务名称
      SWAGGER_JSON_URL: "http://<你的宿主机IP>:8083/services/rest/swagger.json"
      # 新增该变量,指定自定义配置文件的访问路径
      SWAGGER_CONFIG_URL: "/swagger-config.yaml"
    ports:
      - "9091:8080"
    volumes:
      - ./swagger-config.yaml:/usr/share/nginx/html/swagger-config.yaml

2. 修正自定义配置文件的语法错误

你的swagger-config.yaml存在多处问题:

  • 重复定义requestSnippetsEnabled和requestSnippets(正确配置requestSnippets节点即可启用该功能)
  • 混用YAML与JSON结构,容易引发解析失败
  • curl_cmd的syntax被错误设置为bash,应改为cmd
  • JSON结构中的多余逗号可能导致解析异常

修正后的swagger-config.yaml:

---
requestSnippets:
  generators:
    curl_bash:
      title: "cURL (bash)"
      syntax: "bash"
    curl_powershell:
      title: "cURL (PowerShell)"
      syntax: "powershell"
    curl_cmd:
      title: "cURL (CMD)"
      syntax: "cmd"
  defaultExpanded: true
  languages: ["curl_bash", "curl_powershell", "curl_cmd"]

额外注意事项

  • 若后端服务也通过Docker Compose部署,SWAGGER_JSON_URL中的localhost需替换为后端服务名称(比如后端服务名为backend,则写http://backend:8083/services/rest/swagger.json),因为容器内部的localhost指向自身,无法直接访问宿主机服务。
  • 修改配置后,重启容器生效:docker-compose down && docker-compose up -d

内容的提问来源于stack exchange,提问作者Dark Star1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 05:25:22