首页 > 解决方案 > 是否可以将所有请求映射到某个路径下的路由,即“/api/**”到pcf中的不同应用程序?

问题描述

正如标题所示,我有一个前端应用程序和一个后端 API。每个都有自己的清单在自己的容器中的 pcf 中运行。他们在同一个起源。我想将所有 api 请求路由到后端 api,并将所有其他请求路由到前端应用程序。这目前可以通过 pcf cli 或应用管理器中的 map-route cmd 实现。对于后端 api 中的每个端点,我将端点映射到路由 'api/path1'、'api/path2'、'api/path3'、'api/path4'、'api/path5'、api/path6 ', 'api/path7', 'api/path8', 'api/path9'...... 除了唯一的问题是我必须列出我想要映射的每个端点. 不支持通配符..至少我无法让它们工作。有任何想法吗?

标签: routescloud-foundry

解决方案


对于后端 api 中的每个端点,我将端点映射到路由 'api/path1'、'api/path2'、'api/path3'、'api/path4'、'api/path5'、api/path6 '、'api/path7'、'api/path8'、'api/path9'

如果下面的所有内容都/api/进入您的后端应用程序,那么就没有必要像这样映射单个路径。映射到您的后端应用程序就足够了/api/,并且以开头的每个请求都/api/将转到您的后端应用程序。

关键是所有内容都/api/进入后端应用程序。如果你想拥有/api/v1, /api/v2,/api/v3/api/v4去后端并/api/something_else去另一个应用程序,那么它会更复杂,因为它们都以开头,/api/然后你必须在 CF 中添加单独的路由。

不支持通配符..至少我无法让它们工作。

正确的。没有特定的通配符,但匹配基本上是“开始于”匹配。如果请求的路径以您添加到路由的路径开头,那么它将匹配。

https://www.example.com/path1例如: matches的路线https://www.example.com/path1https://www.example.com/path1/subpath甚至https://www.example.com/path1/sub/sub/sub/sub/path因为它们都以/path1.

有关详细信息,请参阅此处的“使用路径创建 HTTP 路由”。

https://docs.cloudfoundry.org/devguide/deploy-apps/routes-domains.html#create-route


推荐阅读