You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于指定GraphQL Schema发起对象列表请求?

先理清楚你的Schema核心结构

首先,咱们先拆解下你提供的Schema里和列表相关的关键部分:

  • 根查询Query提供了两个单对象入口:money(id: Long!)(根据ID拉取单个Money)和coin(id: Long!)(根据ID拉取单个Coin)
  • Money类型里的coins字段是**[Coin!]!类型**——也就是必填的非空Coin对象列表,这是你获取Coin列表的核心入口
  • Coin类型里的history是**[DateVal!]类型**——也就是可选的非空DateVal对象列表,用来获取单枚Coin的历史数据

编写获取对象列表的GraphQL查询

根据你的需求,这里提供两种最常用的列表查询场景:

1. 查询指定Money下的所有Coin列表

如果你想通过某个Money的ID,获取它关联的全部Coin对象(还可以同时拉取每个Coin的详情甚至历史数据),可以用这个查询:

query FetchMoneyAndItsCoins {
  money(id: 5) { # 替换成你实际要查询的Money ID
    id
    coins { # 这里就是请求Money对象下的Coin列表
      id
      name
      # 可选:如果需要每个Coin的历史数据,就加上这个字段
      history {
        date
        val
      }
    }
  }
}

执行这个查询后,你会得到ID为5的Money对象,以及它包含的所有Coin组成的列表,每个Coin的字段都会按照你指定的返回。

2. 查询指定Coin的历史数据列表

如果只需要单个Coin的历史数据列表,可以直接查询coin字段:

query FetchCoinHistory {
  coin(id: 1) { # 替换成目标Coin的ID
    id
    name
    history { # 请求该Coin的历史数据列表
      date
      val
    }
  }
}

关于REST端点的小补充

你提到的/money和/coin这两个REST端点,应该是你的GraphQL服务的数据源。当你执行上面的GraphQL查询时,服务端会自动帮你调用对应的REST接口:比如执行第一个查询时,先调用/money?id=5拿到Money数据,再根据返回的coins里的每个ID调用/coin?id=xxx来获取完整的Coin信息(如果你的查询里包含了Coin的额外字段的话),最后把这些数据组装成符合GraphQL查询结构的响应返回给你。

内容的提问来源于stack exchange,提问作者ruthless

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:16:55