Union Types

未匹配的标注

定义 Union Type

Union 是一种简单枚举其他 Object Types 的抽象类型。Union Type 的值实际上是包含的 Object Types 之一的值。

graphql-php 中,Union 类型是一个GraphQL\Type\Definition\UnionType (或其中一个子类)的实例,它接受构造函数中的配置数组:

<?php
use GraphQL\Type\Definition\UnionType;

$searchResultType = new UnionType([
    'name' => 'SearchResult',
    'types' => [
        MyTypes::story(),
        MyTypes::user()
    ],
    'resolveType' => function($value) {
        if ($value->type === 'story') {
            return MyTypes::story();            
        } else {
            return MyTypes::user();
        }
    }
]);

本示例对 Union 定义使用 内联 样式,但你也可以使用 继承或类型语言

配置选项

联合类型的构造函数接受一个数组。以下是允许的选项的完整列表:

选项 类型 说明
name string 必需。 Schema 中该接口类型的唯一名称
types array 必需。 本联合中包含的对象类型列表。请注意,你不能从接口或其他联合中创建联合类型。
description string 用于客户端的此类型的明文描述(例如,GraphiQL 用于自动生成的文档)
resolveType callback function($value, $context, ResolveInfo $info)
从父字段的解析器接收 $value,并返回 $value 具体对象类型。

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/graphql-php/typ...

译文地址:https://learnku.com/docs/graphql-php/typ...

上一篇 下一篇
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
贡献者:2
讨论数量: 0
发起讨论 查看所有版本


暂无话题~