Partie 2 - le schéma dans GraphQL

Publié le 16/01/2025 Source : sfeir.dev

Journal de bord du capitaine, jour 2 sur l’île de GraphQL :

Musique de fond pour l’article


Rôle du schéma GraphQL

Aujourd’hui, nous abordons une pierre angulaire de notre expédition : le schéma GraphQL.
Cet artefact précieux établit les règles du jeu entre le client et le serveur, agissant tel un contrat qui fixe :

Grâce à ce schéma, chaque membre de l’équipage sait exactement quelles données sont accessibles et comment les manier.

Pourquoi ce schéma est-il notre trésor ?

Les richesses du schéma sont nombreuses et précieuses :

Un seul schéma pour garder la mer calme

Certains pourraient être tentés de diviser leurs trésors en plusieurs schémas. Mais gare !
Cela augmente la complexité et crée des fragments où certaines données seraient isolées, rendant la navigation périlleuse. Pour garder une API claire et maîtrisable, un seul schéma est bien plus sage.

Notre schéma à nous, capitaine !

Pour notre aventure, nous avons placé le schéma dans un fichier .graphqls au cœur de notre embarcation, dans le répertoire src/main/resources/graphql/. Ce parchemin y spécifie chaque typerequête et mutation qui constitue notre API. Voici les trésors principaux définis dans notre schéma :

type Author {
    id: ID!
    name: String!
    bio: String
    articles: [Article]
}

type Article {
    id: ID!
    title: String!
    content: String!
    author: Author!
}

type Query {
    getAuthors: [Author]
    getAuthorById(id: ID!): Author
    getArticles: [Article]
    getArticleById(id: ID!): Article
}

type Mutation {
    createAuthor(name: String!, bio: String): Author
    createArticle(title: String!, content: String!, authorId: ID!): Article
}

schéma graphql

Query et Mutation : nos instruments de navigation

Le symbole du point d’exclamation !

Lorsqu’on voit un ! dans notre schéma, cela signifie que le type est non-nul, comme une règle gravée dans le bois du navire.
Cela impose une valeur obligatoire pour ce champ, garantissant ainsi des requêtes sûres et sans surprise.


Fin de l’entrée. Prochaine étape : mettons en œuvre ces trésors et préparons-nous à exposer nos données via des controllers

Précédemment

Partie 1 - Mise en place

Prochainement

Partie 3 - Controllers