翻译进度
2
分块数量
2
参与人数

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 定义使用 内联 样式,但你也可以使用 继承或类型语言

Ellison 翻译于 2个月前

配置选项

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

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

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

参与译者:2
讨论数量: 0
发起讨论


暂无话题~