Docker部署Swagger-UI如何自定义Try-it-out请求地址?
如何指定Swagger-UI Try-it-out的请求地址(Docker部署场景)
没问题!这个情况我碰到过好几次,其实就是Swagger-UI默认的请求地址逻辑导致的——它默认会用你访问Swagger-UI页面的主机地址(也就是这里的localhost:8080)来发送Try-it-out请求,咱们只要通过环境变量配置就能手动指定目标接口地址。
解决方法:添加API_BASE_URL环境变量
你只需要在docker-compose的swagger服务环境变量里,新增API_BASE_URL参数,指定你的应用实际的接口地址即可。
修改后的docker-compose配置如下:
swagger: image: "swaggerapi/swagger-ui" depends_on: - application-xxx deploy: replicas: 1 restart_policy: condition: always ports: - "8080:8080" environment: - API_URL=http://0.0.0.0:52204/swagger.json - API_BASE_URL=http://你的应用实际地址:端口 # 示例:http://localhost:52204 或者集群内服务名http://application-xxx:52204
关键参数说明
API_URL:负责告诉Swagger-UI从哪个地址加载你的接口文档swagger.jsonAPI_BASE_URL:这就是解决问题的核心——它会指定Try-it-out功能发送请求时使用的基础地址,所有接口请求都会自动以这个地址为前缀,不再使用Swagger-UI自身的地址
额外注意事项
- 如果你是在同一Docker网络下部署应用和Swagger-UI,直接用应用的服务名(比如
application-xxx)代替IP地址会更稳定,比如API_BASE_URL=http://application-xxx:52204 - 确保
API_BASE_URL的地址能被你的浏览器正常访问:本地测试用localhost或本地IP,服务器部署用公网IP/域名 - 环境变量值前面不要加空格!你原来配置里
API_URL= http://...的空格最好去掉,避免解析错误
内容的提问来源于stack exchange,提问作者Minisha
相关产品推荐
相关产品推荐

