symfony + api 平台 - 为路由创建别名
Posted
技术标签:
【中文标题】symfony + api 平台 - 为路由创建别名【英文标题】:symfony + api platform - creating alias to a route 【发布时间】:2021-08-20 07:21:52 【问题描述】:我们有一个相当标准的 symfony + api-platform 项目。
不久前,当创建一条路线时,其中有一个错字。我注意到了这一点,并想在未来修复它。问题是我们的一些客户可能已经这样实施了。我希望它还能工作一段时间,而不会暴露在文档中。我可以通过覆盖生成器服务来处理文档部分,所以这不是问题。
问题是我找不到在 api-platform 中创建别名的方法。知道我该怎么做吗?项目操作定义如下所示:
* get"=
* "method"="GET",
* "path"="/pathWithTypo/id",
* "requirements"="id"="[0-9A-Z]+-[0-9A-Z]+",
* "normalization_context"="groups"="someGroup"
*
【问题讨论】:
我会在 webserver (apache, nginx) 配置中使用 RewriteRule。 httpd.apache.org/docs/2.4/rewrite/remapping.html 这不是一个坏主意。虽然像在控制器等上那样添加别名会很棒。 您是否尝试将路由放入 config/routes.yaml ?还可以使用 nelmio api doc 过滤掉不想出现在文档中的路径 (path_patterns)。 【参考方案1】:只需复制“get”操作并为其命名:
itemOperations=
"get"=
"method"="GET",
"path"="/pathWithTypo/id",
"requirements"="id"="[0-9A-Z]+-[0-9A-Z]+",
"normalization_context"="groups"="someGroup"
,
"get_without_typo"=
"method"="GET",
"path"="/pathWithoutTypo/id",
"requirements"="id"="[0-9A-Z]+-[0-9A-Z]+",
"normalization_context"="groups"="someGroup"
因此,您可以轻松删除旧的get
操作并将get_without_typo
重命名为get
。
要从文档中删除一些端点 - 我创建了自己的选项 - remove_from_docs
。我可以和你一起share它。
【讨论】:
我试试看。以上是关于symfony + api 平台 - 为路由创建别名的主要内容,如果未能解决你的问题,请参考以下文章
使用带有 api 平台和 symfony 的转换器时,GET 结果为空