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...

上一篇 下一篇
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
贡献者:2
讨论数量: 0
发起讨论 只看当前版本


暂无话题~