gpt4 book ai didi

types - 在 GraphQL 类型定义中创建条件属性

转载 作者:行者123 更新时间:2023-12-04 10:25:17 28 4
gpt4 key购买 nike

我正在使用 Apollo 框架设置 GraphQL 服务器。

它将有一个名为 Shelf 的实体。 .一个 Shelf有一个 shelfIdpackages .

我需要能够查询 ShelvesshelfIdpackageCode .

我的数据源可以处理这两种情况,但我想要 1 个名为 shelf 的解析器为了这。

例子

query getShelf(shelfId: "1") {
shelfId
}

或者:
query getShelf(packageCode: "123") {
shelfId
}

如果 packageCode 如何定义检查类型或 shelfId设置了吗?
  • packageCode提供 shelfId不需要
  • shelfId提供 packageCode不需要
  • 当我们都不需要提供任何一个时

  • 我认为我唯一的选择是:
  • A) 为每个场景创建单独的解析器
  • B) 使它们都是可选的并从解析器返回错误。

  • 我将如何进行?

    最佳答案

    目前没有支持将两个参数之一设为非空的语法。您必须使两个参数都可以为空,然后将验证逻辑添加到解析器中。

    或者,如果两个参数的类型相同,您可以执行以下操作:

    type Query {
    getShelf(id: ID! idType: ShelfIdType!)
    }

    enum ShelfIdType {
    SHELF_ID
    PACKAGE_CODE
    }

    我认为这不一定更好,但如果您想完全依赖 GraphQL 的类型系统进行验证,这是一个选择。

    关于types - 在 GraphQL 类型定义中创建条件属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60652827/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com