我想为我的API平台创建一个自定义操作。
但是如果你想用资源YAML文件创建自定义操作,文档是很差的。
- 我声明 *
resources:
App\Entity\Engine\Car:
security: 'is_granted("ROLE_SUPER_ADMIN")'
itemOperations:
render:
method: 'GET'
path: '/engine/{id}/render'
uriTemplate: '/engine/{id}/render'
controller: App\Controller\Api\EngineRenderController
operations:
render:
method: 'GET'
path: '/engine/{id}/render'
uriTemplate: '/engine/{id}/render'
controller: App\Controller\Api\EngineRenderController
- 使用此控制器API:*
<?php
namespace App\Controller\Api;
use App\Entity\Engine\Car;
class EngineRenderController
{
public function __invoke(): array
{
return ['test' => 'I be back'];
}
}
- 它产生他的:*
- 操作类“render”在中的“App\Entity\Engine\Car”(/var/www/project/config/API_platform/resources.yaml)中不存在。(它是从“/var/www/project/config/routes/API_platform.yaml”导入的)。确保有支持“API_platform”类型的加载程序。*
什么是确切的声明可以使用?
如果使用resources.yaml和控制器API,为什么要在我的实体中声明任何东西?
- 我只使用这个声明:*
itemOperations:
render:
method: 'GET'
path: '/engine/{id}/render'
uriTemplate: '/engine/{id}/render'
controller: App\Controller\Api\EngineRenderController
我的swagger页面生成正确,但没有关于我的路径API或方法api与名称'render'
如何正确创建YAML格式和API平台上下文的自定义操作?
1条答案
按热度按时间4sup72z81#
很多时间过去了,我改变了很多事情。但是我可以分享我的配置,它运行自定义渲染方法API平台,如下所示:
API_platform.yaml
资源.yaml
资源:
CarRenderController.php
注意: