Apollo GraphQL错误:必须提供查询根类型

Apollo GraphQL错误:必须提供查询根类型,graphql,apollo,Graphql,Apollo,我有一个Angular/Apollo GraphQL实现,它基于GraphQL端点生成typescript代码,GraphQL端点呈现一个模式。我可以通过邮递员通过查询点击端点,并返回结果。但是,当我通过npm运行“graphql codegen--config codegen.yml”时,我得到以下错误: “错误:必须提供查询根类型” 服务器端是使用GraphQL ASPNetCore的.Net核心实现。我定义了4个不同的查询,每个查询都通过graphiql工作 您知道为什么查询根类型现在返回

我有一个Angular/Apollo GraphQL实现,它基于GraphQL端点生成typescript代码,GraphQL端点呈现一个模式。我可以通过邮递员通过查询点击端点,并返回结果。但是,当我通过npm运行“graphql codegen--config codegen.yml”时,我得到以下错误:

“错误:必须提供查询根类型”

服务器端是使用GraphQL ASPNetCore的.Net核心实现。我定义了4个不同的查询,每个查询都通过graphiql工作


您知道为什么查询根类型现在返回为null吗?

当您的模式粘贴/定义不正确时,会引发此错误。请检查根架构定义


我最终恢复到以前版本的代码库,并手动重新应用了修改,现在可以使用了。我能想到的唯一一件事是我运行了npm更新,它将apollo angular从1.8.3更新到了1.10.0

编辑以下是我的代码:

codegen.yml(用于从npm命令生成代码):

在恢复到Angular代码的早期版本,然后重新应用我的代码修改之后,GraphQl代码生成再次工作。我能想到的唯一一件可能导致这个问题的事情是当我运行npm更新时。下面是package.json的before/after的屏幕截图:


我在使用
graphql codegen
时遇到了同样的问题

我的代码是

overwrite: true
schema: "http://localhost:3001/graphql"
documents: "src/app/graphql/*.graphql"
generates:
  src/generated/graphql.ts:
    plugins:
      - typescript
      - typescript-operations
      - typescript-apollo-angular
当我使用插件apollo angular时,问题就出现了

我使用
Nodejs
graphql
作为后端

当我重命名类型时,问题得到了解决 根查询->查询 及 根突变->突变 在后端模式中

以前


type RootQuery {
  _empty: String  
}

type RootMutation {
  _empty: String
}

schema {
    query: RootQuery
    mutation: RootMutation
}
之后


GraphQL必须至少有一个@Query()才能被视为有效。因此,可能只需要在解析器代码中添加任何查询就可以了。 例:


如果您正在运行的
graphql codegen
命令有问题,您应该在问题中包含
codegen.yml
的内容,并适当标记您的问题。graphql-codegen命令与流程运行时相比没有更改。我已从源代码中删除了除1个查询外的所有查询,但仍获得“必须提供查询根类型”。单个查询不应存在任何缝合冲突。如果可能,请共享您的代码。我可以看一看“当您的模式粘贴/定义不正确时”-或者缺少/根本没有查询公开数据。没有查询的GraphQL模式有点像一棵树倒在树林里的声音,周围没有人。除了GraphQL抛出一个错误。(-‸ლ)您好@Dung Le,您可以在将来回答问题之前询问示例代码,但是我很高兴您有兴趣为社区做出贡献。欢迎!!

type RootQuery {
  _empty: String  
}

type RootMutation {
  _empty: String
}

schema {
    query: RootQuery
    mutation: RootMutation
}
type Query {
  _empty: String  
}

type Mutation {
  _empty: String
}

schema {
    query: Query
    mutation: Mutation
}

export class FooResolver {

  @Query(() => String)
  sayHello(): string {
    return 'Hello World!';
  }
}