0

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 提供的语法定义我的模式有什么好处?

4

1 回答 1

0

在我看来,Type 语言风格更加简洁易读。我仍然需要了解如何使用这个库编写联合类型和接口的解析器,无论如何,它们应该是等价的。

于 2019-06-04T12:51:15.053 回答