youshido-php / GraphQLBundle

Pure PHP implementation of GraphQL Server – Symfony Bundle
MIT License
284 stars 44 forks source link

different response by KIND_OBJECT and KIND_LIST #56

Open LiFeAiR opened 7 years ago

LiFeAiR commented 7 years ago

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

{"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":[[]]}}}

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

viniychuk commented 7 years ago

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

LiFeAiR commented 7 years ago
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(),
...