Dans le monde du développement web, la manière dont nous concevons et interagissons avec nos API a considérablement évolué. GraphQL, une technologie développée par Facebook, est devenu un choix populaire pour construire des APIs flexibles et efficaces. Dans cet article, nous allons voir comment créer une API GraphQL en utilisant Apollo Server, un des serveurs les plus utilisés pour GraphQL.
Qu'est-ce que GraphQL ?
GraphQL est un langage de requête pour les APIs qui permet aux clients de demander uniquement les données dont ils ont besoin. Contrairement à REST, où chaque endpoint retourne une structure de données fixe, GraphQL permet au client de spécifier la structure des données qu'il souhaite recevoir. Cela rend les APIs plus flexibles et moins sujettes à des changements fréquents.
Installation d'Apollo Server
Apollo Server est un serveur GraphQL qui peut être utilisé avec n'importe quelle plateforme JavaScript, que ce soit Node.js, React ou d'autres. Pour commencer, vous devez d'abord installer Apollo Server et d'autres dépendances nécessaires.
npm install apollo-server graphql Une fois les dépendances installées, vous êtes prêt à créer votre premier serveur GraphQL.
Création d'un serveur GraphQL simple
Voici comment créer un serveur de base avec Apollo Server. Nous allons définir un schéma simple et un résolveur pour retourner des données.
const { ApolloServer, gql } = require('apollo-server');
// Définition du schéma GraphQL
const typeDefs = gql`
type Query {
hello: String
}
`;
// Définition des résolveurs
const resolvers = {
Query: {
hello: () => 'Bonjour, monde !'
}
};
// Création du serveur Apollo
const server = new ApolloServer({ typeDefs, resolvers });
// Démarrage du serveur
server.listen().then(({ url }) => {
console.log(`🚀 Serveur prêt à l'écoute sur ${url}`);
}); Ce code crée un serveur qui écoute les requêtes sur un endpoint GraphQL. Lorsque vous interrogez le serveur avec la requête suivante :
{
hello
} Vous obtiendrez la réponse :
{
"data": {
"hello": "Bonjour, monde !"
}
} Ajout de données avec Apollo Server
Pour rendre notre API plus dynamique, nous allons ajouter des données et permettre aux utilisateurs d'interroger ces données. Imaginons que nous voulons gérer une liste d'utilisateurs. Nous allons modifier notre schéma pour inclure un type User et ajouter des données factices.
const { ApolloServer, gql } = require('apollo-server');
const typeDefs = gql`
type User {
id: ID!
name: String!
}
type Query {
users: [User]
}
`;
const users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
];
const resolvers = {
Query: {
users: () => users,
}
};
const server = new ApolloServer({ typeDefs, resolvers });
server.listen().then(({ url }) => {
console.log(`🚀 Serveur prêt à l'écoute sur ${url}`);
}); Avec cette modification, vous pouvez maintenant interroger la liste des utilisateurs :
{
users {
id
name
}
} Et recevoir la réponse :
{
"data": {
"users": [
{ "id": "1", "name": "Alice" },
{ "id": "2", "name": "Bob" }
]
}
} Conclusion
Dans cet article, nous avons exploré les bases de la création d'une API GraphQL avec Apollo Server. Nous avons vu comment installer Apollo Server, créer un schéma simple et ajouter des données. GraphQL offre une flexibilité inégalée pour interroger des données, et Apollo Server simplifie le processus de mise en place d'une API GraphQL. Pour aller plus loin, n'hésitez pas à consulter la documentation officielle d'Apollo et à explorer des concepts plus avancés.
Prêt à mettre en œuvre GraphQL dans vos projets ? Commencez dès aujourd'hui et transformez votre manière d'interagir avec vos données !