【问题标题】:symfony + api platform - creating alias to a routesymfony + api 平台 - 为路由创建别名
【发布时间】: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)。

标签: php symfony routes api-platform.com


【解决方案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它。

【讨论】:

  • 我试试看。
猜你喜欢
  • 2015-12-20
  • 2017-04-29
  • 2014-02-19
  • 1970-01-01
  • 1970-01-01
  • 2020-08-12
  • 1970-01-01
  • 1970-01-01
  • 2022-12-01
相关资源
最近更新 更多