我正在使用Spring Boot 1.4.2生成一个Spring数据REST服务,该服务托管在Docker容器中,部署到CoreOS集群,路由由NGINX处理。呼。我正在尝试将HAL浏览器添加到这个混合中,我遇到了问题。
NGINX宣传的网址是:
http://api.mycompany.com/api/postal-codes/v1/
NGINX将其映射到在特定端口上运行的CoreOS中的节点,例如100.200.300.400:12345:/。
HAL导出的链接如下所示:
http://api.mycompany.com/postalCodes{?page,size,sort}
HAL不包含“/ api / postal-codes / v1”部分。我熟悉spring.data.rest.base-path配置并尝试了但无济于事。当我启用该选项时,情况如下:
要访问该服务,路径现在是:
http://api.mycompany.com/api/postal-codes/v1/api/postal-codes/v1/
HAL导出的链接如下所示:
http://api.mycompany.com/api/postal-codes/v1/postalCodes{?page,size,sort}
所以我在追逐我的尾巴。 HAL链接现在包括/ api / postal-codes / v1,但服务URL也已移动。
有没有办法让广告中的网址和导出的链接排成一行?
NGINX配置将请求重写到上游,剥离/ api / postal-codes / v1并替换为/。 Spring Boot的默认basePath是/,它解释了为什么HAL具有它所做的链接,而不是那些有效的链接。