SilverStripe GraphQL — синтаксическая ошибка

Я пытался создать базовый объект DataObject в схеме, но мои запросы выдают следующие ошибки:

HTTP: // локальный: 8080 / graphql:

{
"data": null,
"errors": [
{
"message": "Syntax Error GraphQL request (1:1) Unexpected <EOF>\n\n1: \n   ^\n",
"locations": [
{
"line": 1,
"column": 1
}
]
}
]
}

А также, HTTP: // локальный: 8080 / graphql / запрос ={readQuickPossessions {ID + Заголовок + Адрес + SquareFeet}}:

{
"data": null,
"errors": [
{
"message": "Syntax Error GraphQL request (1:25) Cannot parse the unexpected character \"+\".\n\n1: {readQuickPossessions{ID+Title+Address+SquareFeet}}\n                           ^\n",
"locations": [
{
"line": 1,
"column": 25
}
]
}
]
}

Вот объект DataObject:

<?php
namespace Trigger\HomeBuilderSite\DataObjects;

use SilverStripe\ORM\DataObject;
use SilverStripe\GraphQL\Scaffolding\Interfaces\ScaffoldingProvider;
use SilverStripe\GraphQL\Scaffolding\Scaffolders\SchemaScaffolder;

class QuickPossession extends DataObject implements ScaffoldingProvider {
private static $table_name = 'QuickPossession';

private static $db = [
'Title' => 'Varchar(255)',
'Address' => 'Varchar(255)',
'SquareFeet' => 'Int',
];

private static $has_one = [];

public function provideGraphQLScaffolding(SchemaScaffolder $scaffolder) {
$scaffolder
->type(QuickPossession::class)
->addFields([
'ID',
'Title',
'Address',
'SquareFeet'
])
->operation(SchemaScaffolder::READ)
->end()
->operation(SchemaScaffolder::UPDATE)
->end()
->end();
return $scaffolder;
}
}

И в mysite.yml:

SilverStripe\GraphQL\Controller:
schema:
scaffolding_providers:
- Trigger\HomeBuilderSite\DataObjects\QuickPossession

Любое понимание того, что мне не хватает?

2

Решение

Я ответил на билет. Проблема, кажется, неверный запрос. По умолчанию операции чтения имеют нумерацию страниц.

query {
readQuickPosessions {
edges {
node {
ID
Title
}
}
pageInfo {
hasNextPage
}
}

Кроме того, вы можете отключить нумерацию страниц с помощью ->setUsePagination(false) на операционном узле.

Ты можешь использовать серебрянная полоса отладить это также.

3

Другие решения

Похоже, что запрос, который производит silverstripe-graphql, неверен:

{readQuickPossessions{ID+Title+Address+SquareFeet}}

Здесь нет + синтаксис в запросах GraphQL

Я бы порекомендовал попробовать метод YAML для создания объекта и увидеть, есть ли разница, и, возможно, есть обновление, которое исправляет это.

Если это не сработает, и вы проверили весь синтаксис, вам определенно следует сообщить о проблеме.

1

По вопросам рекламы [email protected]