4 votes

Erreur Apollo GraphQL : Le type de racine de la requête doit être fourni

J'ai une implémentation Angular/Apollo GraphQL qui génère du code typographique basé sur le point de terminaison GraphQl qui surfe sur un schéma. Je peux accéder au point de terminaison via Postman avec une requête et les résultats sont renvoyés. Cependant, lorsque je lance "graphql-codegen --config codegen.yml" via npm, j'obtiens cette erreur :

"Erreur : Le type de racine de la requête doit être fourni"

Le côté serveur est une implémentation de .Net Core utilisant GraphQL ASPNetCore. J'ai défini 4 requêtes différentes et chacune d'entre elles fonctionne via Graphiql.

Une idée de la raison pour laquelle le type de racine de la requête est maintenant retourné comme étant nul ?

3voto

Dung Le Points 31

GraphQL doit avoir au moins une @Query() pour être considéré comme valide. Ainsi, il suffit peut-être d'ajouter une requête au code de votre résolveur pour qu'il soit utile. Ex :

export class FooResolver {

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

1voto

Rigin Oommen Points 488

Cette erreur se produit lorsque les coutures/définitions de votre schéma sont incorrectes. Veuillez vérifier les définitions de votre schéma racine.

https://www.advancedgraphql.com/content/schema-stitching

1voto

Athul M R Points 61

J'ai rencontré le même problème en utilisant graphql-codegen .

mon codegen.yml est

overwrite: true
schema: "http://localhost:3001/graphql"
documents: "src/app/graphql/*.graphql"
generates:
  src/generated/graphql.ts:
    plugins:
      - typescript
      - typescript-operations
      - typescript-apollo-angular

Le problème est apparu lorsque j'ai utilisé le plugin typescript-apollo-angular .

J'utilise Nodejs con graphql comme backend.

Le problème a été résolu lorsque j'ai renommé le type RootQuery -> Query et RootMutation -> Mutation dans le backend schéma .

Avant

type RootQuery {
  _empty: String  
}

type RootMutation {
  _empty: String
}

schema {
    query: RootQuery
    mutation: RootMutation
}

Après

type Query {
  _empty: String  
}

type Mutation {
  _empty: String
}

schema {
    query: Query
    mutation: Mutation
}

0voto

Tom Schreck Points 1171

J'ai fini par revenir à une version antérieure de la base de code et j'ai réappliqué mes modifications manuellement et cela fonctionne maintenant. La seule chose à laquelle je peux penser est que j'ai lancé npm update qui a mis à jour apollo-angular de 1.8.3 à 1.10.0.

EDITAR Voici mon code :

codegen.yml (utilisé pour générer du code à partir d'une commande 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"

Après être revenu à une version précédente du code Angular puis avoir réappliqué mes modifications de code, la génération de code GraphQl a de nouveau fonctionné. La seule chose à laquelle je peux penser qui aurait pu causer ce problème est lorsque j'ai exécuté npm update. Ci-dessous, une capture d'écran avant/après du package.json :

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X