IMDB GraphQL查询报错:无法获取海报与拍摄地点问题咨询
问题根源
IMDB GraphQL搜索接口返回的MainSearchEntity是通用搜索结果类型,它涵盖了电影、剧集、名人等多种不同类型的条目,本身并没有Image和FilmingLocation这两个字段——这俩字段是专属Title(影视条目)类型的。你直接在MainSearchEntity下查询这俩字段,自然会触发“字段不存在”的错误。
正确查询方式
要用GraphQL的内联片段(inline fragment),指定只有当搜索结果是Title类型时,才去请求海报和拍摄地点字段。另外注意IMDB API里拍摄地点的字段名是复数的filmingLocations,不是你写的单数形式,得匹配官方Schema的命名。
示例查询代码:
query SearchAfricaMovies { search(query: "Africa", first: 10) { edges { node { id title # 内联片段:仅对Title类型的实体生效 ... on Title { image { url } filmingLocations { edges { node { text } } } } } } } }
额外说明
如果搜索结果里包含非影视类条目(比如名人),内联片段不会给这些条目返回图片和拍摄地点,只会返回null,不影响整体查询的正常运行。
内容的提问来源于stack exchange,提问作者Vakindu
相关产品推荐
相关产品推荐

