Graphql Php:类类型定义与模式语言
Posted
技术标签:
【中文标题】Graphql Php:类类型定义与模式语言【英文标题】:Graphql Php: Class type definitions vs. schema language 【发布时间】:2019-02-07 19:20:08 【问题描述】: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】:在我看来,Type 语言风格更加简洁易读。我仍然需要了解如何为这个库编写联合类型和接口的解析器,无论如何,它们应该是等价的。
【讨论】:
以上是关于Graphql Php:类类型定义与模式语言的主要内容,如果未能解决你的问题,请参考以下文章
graphql-java:如何在以编程方式生成 graphql 模式时添加自定义标量类型?
使用 Hasura graphql 模式时如何自定义 graphql-code-generator 生成的字段的类型