是否可以将所有请求映射到特定路径下的路由,即“/api/**”到 pcf 中的不同应用程序?

is it possible to map all requests to a route under a certain path i.e '/api/**' to a different app in 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'................ 除了唯一的问题是我必须列出我想要映射的每个端点。不支持通配符……至少我无法让它们工作。有什么想法吗?

For every endpoint I have in my backend api, I map the endpoint to a route '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 中添加单独的路由。

Wildcards are not supported..at least I haven't been able to get them to work.

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

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

开头

有关详细信息,请参阅此处 "Create an HTTP Route with a Path"。

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