API GraphQL avec C# : tutoriel pas à pas pour débutants

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction à GraphQL avec C#



GraphQL est un langage de requête pour API, développé par Facebook, qui permet aux clients de demander uniquement les données dont ils ont besoin. Contrairement à REST, où les points de terminaison sont fixes, GraphQL permet de former de manière flexible les réponses du serveur. Dans ce tutoriel, nous allons créer une API GraphQL complète en C# en utilisant la bibliothèque Hot Chocolate – la solution la plus populaire pour .NET.



Nous parcourrons le chemin de l'installation à la mise en œuvre des requêtes, mutations et abonnements. À la fin de cet article, vous serez capable de déployer vous-même un serveur GraphQL en C# et de l'intégrer dans vos projets.



1. Installation et configuration du projet



Pour commencer, créons un nouveau projet ASP.NET Core. Assurez-vous que le SDK .NET (version 6.0 ou supérieure) est installé. Ouvrez le terminal ou l'invite de commandes et exécutez :



dotnet new web -n GraphQLDemocd GraphQLDemo


Installez maintenant le package Hot Chocolate :



dotnet add package HotChocolate.AspNetCoredotnet add package HotChocolate.AspNetCore.Playground


Après l'installation, ouvrez le fichier Program.cs et configurez le serveur :



using Microsoft.AspNetCore.Builder;using Microsoft.Extensions.DependencyInjection;

var builder = WebApplication.CreateBuilder(args);

// Ajout des services GraphQLbuilder.Services .AddGraphQLServer() .AddQueryType<Query>();

var app = builder.Build();

// Connexion du middleware GraphQLapp.MapGraphQL();

// Ajout de Playground pour les testsapp.UsePlayground();

app.Run();


Créez maintenant une classe simple Query dans un fichier séparé Query.cs :



public class Query{    public string Hello() => "Bonjour, monde GraphQL !";}


Lancez le projet avec la commande dotnet run et ouvrez le navigateur à l'adresse http://localhost:5000/graphql. Vous verrez l'interface Playground, où vous pouvez exécuter la requête :



{  hello}


Réponse : { "data": { "hello": "Bonjour, monde GraphQL !" } }



2. Création des types et des requêtes



GraphQL est fortement typé. En C#, nous utilisons des classes pour définir les types. Créons les modèles Book et Author :



public class Book{    public int Id { get; set; }    public string Title { get; set; }    public Author Author { get; set; }}

public class Author{ public int Id { get; set; } public string Name { get; set; } public List<Book> Books { get; set; }}


Ajoutons maintenant un stockage de données (dans un projet réel, utilisez une base de données) et étendons la classe Query :



public class Query{    private static List<Author> _authors = new()    {        new Author        {            Id = 1,            Name = "Léon Tolstoï",            Books = new List<Book>            {                new Book { Id = 1, Title = "Guerre et Paix", Author = null },                new Book { Id = 2, Title = "Anna Karénine", Author = null }            }        },        new Author        {            Id = 2,            Name = "Fiodor Dostoïevski",            Books = new List<Book>            {                new Book { Id = 3, Title = "Crime et Châtiment", Author = null }            }        }    };

public List<Author> GetAuthors() => _authors;

public Author GetAuthor(int id) => _authors.FirstOrDefault(a => a.Id == id); public List<Book> GetBooks() => _authors.SelectMany(a => a.Books).ToList();}


Remarque : nous n'avons pas configuré explicitement les types — Hot Chocolate génère automatiquement le schéma à partir des classes C#. Vous pouvez maintenant exécuter des requêtes :



{  authors {    id    name    books {      title    }  }}

Blogs

Book Recommendations