为什么这个 Sylius 资源 API 要求模板?

Why is this Sylius Resource API asking for Templaets?

我正在尝试创建 Sylius 资源。我创建了一个名为 App\Entity\Thing

的 Doctrine 实体
./src/Repository/ThingRepository.php
./src/Entity/Thing.php

并且,per Sylius docs,我将以下内容添加到我的路由配置中

app_thing:
   resource: |
       alias: app.thing
   type: sylius.resource_api

以及我的应用程序配置的以下内容

sylius_resource:
    resources:
        app.thing:
            classes:
                model: App\Entity\Thing

根据 Sylius 文档,我应该申请通过 API 使用这样的 curl 调用来获取 "thing"

curl -i -X GET -H "Accept: application/json" http://localhost:8000/things/1 

但是,当我尝试这样做时,出现以下错误

Unable to find template "/show.html.twig" (looked into: /path/to/acme/vendor/knplabs/knp-menu/src/Knp/Menu/Resources/views, /path/to/acme/templates, /path/to/acme/templates, /path/to/acme/vendor/symfony/twig-bridge/Resources/views/Form).    

错误似乎是要求某些树枝模板存在——我不明白,因为这是 JSON Api。我假设我做错了什么,但我不知道是什么。

有谁知道我做错了什么,或者对我如何进一步调试有建议吗?

这是 sylius:debug:resource 命令的输出。我是 运行 Sylius 标准版。

$ php bin/console sylius:debug:resource app.thing
+--------------------+------------------------------------------------------------+
| name               | thing                                                      |
| application        | app                                                        |
| driver             | doctrine/orm                                               |
| classes.model      | App\Entity\Thing                                           |
| classes.controller | Sylius\Bundle\ResourceBundle\Controller\ResourceController |
| classes.factory    | Sylius\Component\Resource\Factory\Factory                  |
| classes.form       | Sylius\Bundle\ResourceBundle\Form\Type\DefaultResourceType |
+--------------------+------------------------------------------------------------+

我认为文档中缺少某些内容。 API 路由需要 ^/api 前缀。 一种解决方案是向您的路由配置添加路径:

  app_thing:
    resource: |
      alias: app.thing
      path: /api/things
    type: sylius.resource_api