繁体   English   中英

Graphql Php:类类型定义与模式语言

[英]Graphql Php: Class type definitions vs. schema language

Graphql的新功能,使用webonyx / graphql-php

使用类样式定义与graphql提供的语法来定义我的架构有什么好处?

我有一个使用类样式架构defs的基本工作示例,如下所示:

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

在我看来,Type语言样式更加紧凑和易读。 我仍然必须了解如何使用该库为联合类型和接口编写解析器,无论如何,它们应该是等效的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM