Graphql Php: определения типов классов и язык схем - PullRequest
0 голосов
/ 02 сентября 2018

Новое в Graphql, используя webonyx / graphql-php .

Какая польза от определения моей схемы с определениями стилей класса по сравнению с предоставленным синтаксисом graphql?

У меня есть базовый рабочий пример с использованием определения схемы стиля класса следующим образом:

use MyApp\Type\MediaType;
use MyApp\TypeRegistry;

use GraphQL\Type\Definition\ObjectType;
use GraphQL\Type\Definition\Type;

class MusicType extends ObjectType {

    public function __construct() {
        $config = [
            'fields' => [
                'id' => Type::id(),
                'name' => Type::String(),
                'url' => Type::String(),
                'dateStart' => Type::String(),
                'dateEnd' => Type::String()
            ],
            'interfaces' => [
                TypeRegistry::media(),
                TypeRegistry::dateRestricted(),
            ]
        ];
        parent::__construct($config);
    }
}

Тем не менее, определение схемы таким образом выглядит неуклюже, и единственное реальное преимущество, которое я могу видеть, это то, что я могу определять свои преобразователи в том же месте, что и схема.

Использование синтаксиса schema.graphqls выглядит чище и его легче перенести на другие серверные языки ...

type Music implements Media {
    id: ID!
    name: String!
    url: String!
    dateStart: String
    dateEnd: String
}

Какая польза от определения моей схемы с определениями стилей классов по сравнению с предоставленным синтаксисом graphql?

1 Ответ

0 голосов
/ 04 июня 2019

На мой взгляд, стиль языка Type является более компактным и читабельным. Я все еще должен понять, как написать преобразователи для типов объединения и интерфейсов с этой библиотекой, в любом случае, они должны быть эквивалентны.

...