【问题标题】:Api Platform - Use a specific search filter for a specific pathApi Platform - 对特定路径使用特定搜索过滤器
【发布时间】:2020-06-10 14:11:33
【问题描述】:

对于同一个实体,我在示例中为入站和出站链接创建了 2 条不同的路径。在文档 (Swagger) 中,我只想将 href 用作入站过滤器,将 page 用作出站过滤器。目前,所有字段都出现在 2 条路径中。 我在 Symfony 4.4 和 Api Platform 2.4 上。 感谢您的帮助。

/**
 * @ApiResource(
 *     shortName="page_links",
 *     collectionOperations={
 *          "inbound"={
 *              "path"="/page/links/inbound",
 *              "method"="GET",
 *          },
 *          "outbound"={
 *              "path"="/page/links/outbound",
 *              "method"="GET",
 *          }
 *     },
 *     itemOperations={"get"={"method"="GET", "path"="/page/links/{id}"}},
 * )
 * @ApiFilter(SearchFilter::class, properties={"href": "partial", "uid": "partial", "page": "partial"})
 * @ORM\Table("res_link_pages")
 * @ORM\Entity(repositoryClass="App\Repository\ResLinkPagesRepository")
 */

【问题讨论】:

    标签: symfony api-platform.com


    【解决方案1】:

    我通过添加一些 openapi_context 属性找到了解决方案

    /**
     * @ApiResource(
     *     shortName="page_links",
     *     collectionOperations={
     *          "inbound"={
     *              "path"="/page/links/inbound",
     *              "method"="GET",
     *              "openapi_context" = {
     *                  "parameters" = {
     *                      {
     *                          "name" = "page",
     *                          "type" = "string",
     *                          "in" = "query"
     *                      }
     *                  }
     *              }
     *          },
     *          "outbound"={
     *              "path"="/page/links/outbound",
     *              "method"="GET",
     *              "openapi_context" = {
     *                  "parameters" = {
     *                      {
     *                          "name" = "href",
     *                          "type" = "string",
     *                          "in" = "query"
     *                      }
     *                  }
     *              }
     *          }
     *     },
     *     itemOperations={"get"={"method"="GET", "path"="/page/links/{id}"}},
     * )
     * @ApiFilter(SearchFilter::class, properties={"href": "partial", "uid": "partial", "page": "partial"})
     * @ORM\Table("res_link_pages")
     * @ORM\Entity(repositoryClass="App\Repository\ResLinkPagesRepository")
     */
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-18
      • 2019-12-04
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      • 2017-09-27
      • 1970-01-01
      • 2018-08-04
      相关资源
      最近更新 更多