首页 > 解决方案 > Vapor 3:具有任意路径段的路线

问题描述

我正在开发一个使用请求路径作为响应方法的参数的 Vapor 3 应用程序。例如:

http://localhost:8080/monitor/some/test/path

这可以由单个端点(monitor在本例中为端点)处理,理想情况下,它可以让我访问 URL 的其余部分,/some/test/path.

我在 Vapor 中编写了一条无法使用通配符变量工作的路线,并尝试group了文档中描述的机制,但无济于事。我对使用其他 Web 框架的期望是“/monitor/*”之类的东西应该可以完成这项工作,但我在文档中找不到任何建议。

任何援助将不胜感激!

标签: swiftvapor

解决方案


如果要匹配任何单个路径参数,请使用any路径组件。如果要匹配任意数量的路径参数,请使用all路径组件。

例如,如果我使用这些路径组件注册路由:

"service", any, "api", "users"

它将匹配这些路线:

  • /service/v1/api/users
  • /service/caleb/api/users

但它不会匹配这些:

  • service/v1/beta/api/users
  • service/v1

但是,如果您使用该all组件,如下所示:

"service", "api", all

您可以匹配以下任何一项:

  • /service/api/v1
  • /service/api/v1/users/caleb

但不是/service/api


推荐阅读