Logo

Fonctionnalité :

Mutations imbriquées

Mutations imbriquées

Les mutations ne sont exposées que sur le type racine en GraphQL. Par conséquent, le type racine devient fortement surchargé, contenant des champs sans rien en commun entre eux si ce n'est d'être des mutations (ce qui est une question technique, et non une décision de conception d'interface).

Les mutations imbriquées rendent le schéma plus logique et plus navigable, en permettant d'effectuer des mutations sur n'importe quel type, et pas seulement sur le type racine. Elles aident également les performances, en vous permettant de modifier des données sur le résultat d'une autre mutation, évitant ainsi la latence liée à l'exécution de plusieurs requêtes.

Cette requête GraphQL illustre une mutation imbriquée :

mutation {
  createPost(input: {
    title: "First title"
  }) {
    status
    postID
    post {
      update(input: {
        title: "Second title",
        contentAs: { html: "Some content" }
      }) {
        status
        post {
          title
          content
          addComment(input: {
            commentAs: { html: "My first comment" }
          }) {
            status
            commentID
            comment {
              content
              date
            }
          }
        }
      }
    }
  }
}

Abonnez-vous à notre newsletter

Restez au courant de toutes les nouveautés de Gato GraphQL.