使用接口构建 graphql 查询

Use interfaces to build graphql query

是否可以使用现有接口构建 graphql 查询? 或者我们应该写两次相同的代码)

例如in the doc we have

interface Post {
  id: string;
  title: string;
  ...

然后在查询中写入相同的字段

query allPosts {
      posts {
        id
        title
        ...

有什么办法可以写成

query allPosts {
      posts: Post[]

不可能执行类似的操作,因为运行时不存在 TypeScript 类型。接口也不足以表示 GraphQL 字段,因为它们无法捕获参数值或指令使用等信息。

但是,您可以从现有查询自动生成 TypeScript 类型,这通常是这样做的。参见 GraphQL Code Generator

否 ... types!=queries ... posts: Post[] 已在响应定义中使用

查询定义您需要来自此(和其他)类型 (-s) 的子集(字段),f.e。只有标题

您可能正在寻找 Fragments