SilverStripe GraphQL - 语法错误
SilverStripe GraphQL - Syntax Error
我试图将基本数据对象构建到架构中,但我的查询引发了以下错误:
http://localhost:8080/graphql:
{
"data": null,
"errors": [
{
"message": "Syntax Error GraphQL request (1:1) Unexpected <EOF>\n\n1: \n ^\n",
"locations": [
{
"line": 1,
"column": 1
}
]
}
]
}
并且,http://localhost:8080/graphql/?query={readQuickPossessions{ID+Title+Address+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
}
]
}
]
}
这是数据对象:
<?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
对我遗漏了什么有任何见解吗?
看起来 silverstripe-graphql 生成的查询不正确:
{readQuickPossessions{ID+Title+Address+SquareFeet}}
我建议尝试 the YAML method to scaffold an object 并查看是否存在差异,并且可能有修复此问题的更新。
如果这不起作用,并且您已经检查了所有语法,您绝对应该 report an issue。
我已经回复了工单。问题似乎是无效查询。默认情况下,读取操作有分页。
query {
readQuickPosessions {
edges {
node {
ID
Title
}
}
pageInfo {
hasNextPage
}
}
或者,您可以在操作节点上使用 ->setUsePagination(false)
关闭分页。
您也可以使用 silverstripe graphql devtools 进行调试。
我试图将基本数据对象构建到架构中,但我的查询引发了以下错误:
http://localhost:8080/graphql:
{
"data": null,
"errors": [
{
"message": "Syntax Error GraphQL request (1:1) Unexpected <EOF>\n\n1: \n ^\n",
"locations": [
{
"line": 1,
"column": 1
}
]
}
]
}
并且,http://localhost:8080/graphql/?query={readQuickPossessions{ID+Title+Address+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
}
]
}
]
}
这是数据对象:
<?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
对我遗漏了什么有任何见解吗?
看起来 silverstripe-graphql 生成的查询不正确:
{readQuickPossessions{ID+Title+Address+SquareFeet}}
我建议尝试 the YAML method to scaffold an object 并查看是否存在差异,并且可能有修复此问题的更新。
如果这不起作用,并且您已经检查了所有语法,您绝对应该 report an issue。
我已经回复了工单。问题似乎是无效查询。默认情况下,读取操作有分页。
query {
readQuickPosessions {
edges {
node {
ID
Title
}
}
pageInfo {
hasNextPage
}
}
或者,您可以在操作节点上使用 ->setUsePagination(false)
关闭分页。
您也可以使用 silverstripe graphql devtools 进行调试。