[英]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.