我有一个Angular / Apollo GraphQL实现,该实现基于GraphQl端点生成正对架构的打字稿代码。我可以通过邮递员通过查询查询端点,并返回结果。但是,当我通过npm运行“ graphql-codegen --config codegen.yml”时,出现此错误:
“错误:必须提供查询根类型”
服务器端是使用GraphQL ASPNetCore的.Net Core实现。我定义了4个不同的查询,每个查询都通过graphiql工作。
关于查询根类型为何现在返回为null的任何想法?
答案 0 :(得分:2)
GraphQL必须至少具有一个@Query()才能被视为有效。因此,也许只需要将任何查询添加到您的解析器代码中将很有帮助。 例如:
export class FooResolver {
@Query(() => String)
sayHello(): string {
return 'Hello World!';
}
}
答案 1 :(得分:1)
当架构提示/定义不正确时,将引发此错误。请检查您的根架构定义
答案 2 :(得分:0)
我最终恢复了代码库的先前版本,并手动重新应用了修改,并且现在可以使用了。我唯一能想到的就是我运行了npm update,它将apollo-angular从1.8.3更新为1.10.0。
编辑,这是我的代码:
codegen.yml(用于从npm命令生成代码):
overwrite: true
schema: "https://to_end_point/Prod/api/v1/GraphQL"
documents: "src/**/*.graphql"
generates:
src/generated/graphql.ts:
plugins:
- "typescript"
- "typescript-operations"
- "typescript-apollo-angular"
./graphql.schema.json:
plugins:
- "introspection"
恢复到以前的Angular代码版本,然后重新应用我的代码修改后,GraphQl代码生成再次起作用。我唯一想到的可能是导致问题的原因是我运行npm update时。以下是package.json之前/之后的屏幕截图:
答案 3 :(得分:0)
使用graphql-codegen
时遇到相同的问题。
我的codegen.yml是
overwrite: true
schema: "http://localhost:3001/graphql"
documents: "src/app/graphql/*.graphql"
generates:
src/generated/graphql.ts:
plugins:
- typescript
- typescript-operations
- typescript-apollo-angular
当我使用插件typescript-apollo-angular
时,问题就来了。
我使用Nodejs
作为后端的graphql
。
重命名类型后问题得以解决 RootQuery->查询 和 根突变->突变 在后端 schema 中。
之前
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
}