我按照以下指南创建了一个REST端点:https://quarkus.io/guides/rest-json
在本地,我可以成功地在<host>/q/swagger-ui
上使用swagger UI,它使用<host>/q/openapi
作为输入。
但是,在生产中,我使用Nginx将请求转发到<host>/foobar
,因此,最终的URL将更改为<host>/foobar/q/swagger-ui
和<host>/foobar/q/openapi
。
Quarkus Docker容器在端口49321上运行的nginx.conf
代码段:
location /foobar/ {
proxy_pass http://172.17.0.1:49321/;
}
在application.properties
中,我已经添加了以下行:
quarkus.swagger-ui.urls.direct=/foobar/q/openapi
通过这样做,Swagger-UI找到了OpenAPI规范,但是OpenAPI规范包含了错误的URL,因为它不知道/foobar/
URL段。
OpenAPI的外观:
---
paths:
/some/url:
get:
tags:
- blabla
responses:
"200":
description: OK
需要的外观(/foobar/
优先于路径):
---
paths:
/foobar/some/url:
get:
tags:
- blabla
responses:
"200":
description: OK
我已经在www.example.com上查看了可用的OpenAPI属性https://quarkus.io/guides/openapi-swaggerui#openapi,但它们似乎没有解决我的问题。
1条答案
按热度按时间8e2ybdfx1#
我通过在
application.properties
中设置以下内容解决了这个问题:Nginx配置如下(
nginx.conf
):