如何通过GraphQL调用星球大战API查询所有人物?
正确查询Star Wars GraphQL API所有人物的方式
正确的查询写法
query { allPeople { people { name birthYear } } }
原因说明
Star Wars的GraphQL API中,allPeople字段返回的不是直接的人物列表,而是一个包含people数组的对象(还可附带分页相关字段)。你之前的写法错误在于直接在allPeople下请求name和birthYear,但这些属性属于数组里的单个person对象,必须先通过people字段拿到人物列表,再请求具体属性。
你书中的allLifts示例能直接生效,是因为该滑雪场API的allLifts字段直接返回缆车对象数组,和Star Wars API的字段结构设计不同。查询陌生API前,建议查看其内置文档(比如你使用的Explorer界面里的Docs面板),确认字段的返回类型和嵌套结构。
分页查询示例(可选)
如果需要控制返回数量或分页,可给allPeople传入first、after等参数:
query { allPeople(first: 10) { people { name birthYear } totalCount pageInfo { hasNextPage endCursor } } }
内容的提问来源于stack exchange,提问作者Stefanie Gauss
相关产品推荐
相关产品推荐

