Я впервые использую API-платформу (api-platform/api-pack:v1.2.0
, api-platform/core:v2.4.3
) в приложении Symfony 4 с поддержкой Graphql.Я пытаюсь из клиента GraphQL вызвать ресурс таким образом
{
menu(id: "/menus/1") {
type
}
}
И это ошибка, которую я получаю
"No route matches "/menus/1",
Я пытался изменить IRI, но снеудачно.Это моя полная конфигурация
config/packages/api_platform.yaml
api_platform:
title: 'API'
version: '0.0.1'
allow_plain_identifiers: true
graphql:
enabled: true
graphiql:
enabled: true
mapping:
paths: ['%kernel.project_dir%/src/Entity']
config/routes/api_platform.yaml
api_platform:
resource: .
type: api_platform
prefix: /api
src/Entity/resources.yaml
Я хочу использовать только Graphql и никаких конечных точек REST
resources:
App\Request\Menu:
attributes:
messenger: true
graphql:
- query
itemOperations: []
collectionOperations: []
final class Menu
{
/**
* @var string Menu type
*/
private $type;
/**
* Menu constructor.
*
* @param string $type
*/
public function __construct(string $type)
{
$this->type = $type;
}
/**
* @return string
*/
public function getType(): string
{
return $this->type;
}
}
src/Handler/MenuRequestHandler.php
final class MenuRequestHandler implements MessageHandlerInterface
{
/**
* @var \App\Repository\MenuInterfaceRepository
*/
private $repository;
public function __construct(MenuInterfaceRepository $repository
)
{
$this->repository = $repository;
}
public function __invoke(Menu $menuRequest): array
{
return $this->repository->getByType($menuRequest->getType());
}
}
------------------------ -------- -------- ------ -------------------------------------
Name Method Scheme Host Path
------------------------ -------- -------- ------ -------------------------------------
_twig_error_test ANY ANY ANY /_error/{code}.{_format}
app_home_home ANY ANY ANY /test
api_entrypoint ANY ANY ANY /api/{index}.{_format}
api_doc ANY ANY ANY /api/docs.{_format}
api_graphql_entrypoint ANY ANY ANY /api/graphql
api_jsonld_context ANY ANY ANY /api/contexts/{shortName}.{_format}
------------------------ -------- -------- ------ -------------------------------------
Может быть, я упускаю что-то, что обычно очевидно.
Спасибо