【发布时间】:2018-11-17 09:48:38
【问题描述】:
我正在开发基于 Symfony 4.1.0 的微服务,它在 config/routes.yaml 中定义了以下 REST API:
import:
path: /sip/calls/
controller: App\Controller\ApiController::import
methods: [POST]
问题是对/sip/calls 的POST 请求导致NotFoundHttpException(找不到“POST /sip/calls”的路由)。如果我从 config/routes.yaml 中的路由路径中删除尾部斜杠,则对 /sip/calls 的请求会通过,但 /sip/calls/ 会停止工作。
为什么会这样?如何让它忽略斜线或它的缺失?
【问题讨论】:
-
这是一个众所周知的功能。您可以搜索并阅读一些讨论。您的路线实际上适用于 GET 但不适用于 POST。可悲的事实是,就 http 而言,添加尾部斜杠确实使它成为不同的资源。您可以使用一些正则表达式来绕过它,或者只定义两条路线。
标签: php symfony symfony4 symfony-routing