youshido-php/GraphQLBundle

different response by KIND_OBJECT and KIND_LIST

LiFeAiR opened this issue · 2 comments

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

{"query":"query{landing(id: 53237) {thematic} }","variables":null}

ответ:

{
    "data": {
        "landing": null
    },
    "errors": [
        {
            "message": "You have to specify fields for \"thematic\"",
            "locations": [
                {
                    "line": 1,
                    "column": 27
                }
            ]
        }
    ]
}

НО если так же не заполнить запрос для массива, то все нормально и ошибок нет)
пример:
запрос:

{"query":"query{landing(id: 53237){tariffs}}","variables":null}

ответ:

{"data":{"landing":{"tariffs":[[]]}}}

Хочется какого-то единообразия..

Привет @LiFeAiR . Если ты запрашиваешь объект — ты обязан указать какие именно поля этого объекта ты хочешь получить; Если это массив scalar'ов — то всё должно работать и так.
Совсем другое дело если это массив объектов — тогда будет ошибка. Дай пожалуйста больше информации — структуру своей схемы, чтобы можно было понять есть ли там проблема.

LandingType
....
 public function build($config)
$config->addFields(
            [
                'id'                     => new NonNullType(new IdType()),
                'tariffs'                => new ListType(new TariffType()),
...

TariffType
...

 public function build($config)
    {
        $config->addFields(
            [
                'id'        => new NonNullType(new IdType()),
                'landingId' => new StringType(),
...