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

GraphQL API空值问题求助:SpaceX API返回launch_success等字段为Null

SpaceX GraphQL API字段返回Null的问题排查与解决

问题核心原因

你遇到的launch_success、mission_patch返回Null的问题,本质是SpaceX GraphQL API与REST API的字段命名/结构存在差异,且默认查询的数据集包含未完成的发射任务:

  1. 字段名变更:REST API中的launch_success在GraphQL API中对应字段为success,原字段launch_success已被废弃或未在当前Schema中定义,因此返回Null。
  2. 字段结构嵌套:REST API中顶级的mission_patch,在GraphQL API中属于links对象的子字段,直接查询顶级mission_patch会返回Null。
  3. 默认查询范围:launches查询默认返回所有发射(包括未来未执行的任务),这类任务的成功状态尚未确定,因此success字段会返回Null。

解决步骤与示例

1. 修正字段名与结构

使用GraphQL Schema中定义的正确字段,调整查询语句:

query GetLaunches {
  launches {
    mission_name
    rocket {
      rocket_name
    }
    mission_id
    success  # 替代原launch_success字段
    launch_date_utc  # 获取发射日期UTC格式
    links {
      mission_patch  # 获取任务补丁图片(标准尺寸)
      mission_patch_small  # 获取小尺寸补丁图片
    }
  }
}

2. 过滤已完成的发射任务

如果只需要查询已执行的发射(确保success有有效值),使用launchesPast查询而非launches:

query GetPastLaunches {
  launchesPast {
    mission_name
    success
    launch_date_utc
    links {
      mission_patch
    }
  }
}

3. 验证Schema定义

在你使用的GraphQL Playground中,打开左侧「Docs」面板,搜索Launch类型,可查看所有可用字段的详细定义,确认字段的名称、类型及嵌套结构,避免查询不存在的字段。

额外排查建议

  • 检查字段是否有必填参数:部分字段可能需要传入特定参数才能返回有效值(如分页、过滤条件),可通过Schema文档确认。
  • 测试单个发射任务:通过launch(id: "xxx")查询单个已知的成功发射任务,验证字段是否能正常返回值,排除全局查询的数据集问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 00:52:53