Comment écrire une API REST en C# en 30 minutes : guide étape par étape

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 : REST API en C# — c'est rapide et simple

Le développement d'applications web modernes et de services mobiles est impossible sans REST API. Si vous souhaitez créer rapidement un backend pour votre projet, C# avec le framework ASP.NET Core est le choix idéal. Grâce à des outils intégrés, une configuration minimale et d'excellentes performances, vous pouvez écrire un REST API complet en seulement 30 minutes.

Dans cet article, nous allons détailler le processus de création d'une API simple pour gérer une liste de tâches (Todo List). Vous apprendrez à configurer le projet, créer des modèles de données, implémenter des contrôleurs avec des opérations CRUD et tester l'API avec Swagger. Tous les exemples de code sont écrits en C# (.NET 8).

Même si vous êtes débutant en C#, en suivant les instructions, vous obtiendrez une API fonctionnelle à la fin de l'article.

1. Création du projet et configuration de l'environnement

Avant tout, assurez-vous d'avoir installé le .NET SDK (version 8 ou supérieure). Vous pouvez le télécharger depuis le site officiel. Après l'installation, ouvrez un terminal ou une invite de commandes.

Créez un nouveau projet ASP.NET Core Web API avec la commande :

dotnet new webapi -n TodoApi
cd TodoApi

Cette commande crée un dossier TodoApi avec la structure de base du projet. Il contient déjà le fichier Program.cs — le point d'entrée, et le dossier Controllers pour les futurs contrôleurs.

Ouvrez le projet dans Visual Studio, Visual Studio Code ou Rider. Pour simplifier, vous pouvez utiliser n'importe quel éditeur de texte.

Assurez-vous que le fichier Program.cs contient les appels AddSwaggerGen() et UseSwagger(). Swagger est automatiquement inclus dans le modèle — cela facilitera les tests. S'il n'y est pas, ajoutez :

builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
// ...
app.UseSwagger();
app.UseSwaggerUI();

2. Création du modèle de données et du stockage temporaire

Pour notre API, nous allons stocker les tâches en mémoire vive (in-memory). Dans un projet réel, vous connecteriez une base de données, mais pour une démonstration de solution en 30 minutes, cela suffit.

Créez un dossier Models et à l'intérieur le fichier TodoItem.cs :

public class TodoItem
{
    public int Id { get; set; }
    public string Title { get; set; } = string.Empty;
    public bool IsCompleted { get; set; }
}

Créons maintenant un simple service-repository. Dans le dossier Services, créez l'interface ITodoService.cs et son implémentation TodoService.cs. Cela permettra de basculer facilement vers une vraie base de données à l'avenir.

ITodoService.cs :

public interface ITodoService
{
    List<TodoItem> GetAll();
    TodoItem? GetById(int id);
    TodoItem Create(TodoItem item);
    TodoItem? Update(int id, TodoItem item);
    bool Delete(int id);
}

TodoService.cs :

public class TodoService : ITodoService
{
    private readonly List<TodoItem> _items = new();
    private int _nextId = 1;

    public List<TodoItem> GetAll() => _items;

    public TodoItem? GetById(int id) => _items.FirstOrDefault(i => i.Id == id);

    public TodoItem Create(TodoItem item)
    {
        item.Id = _nextId++;
        _items.Add(item);
        return item;
    }

    public TodoItem? Update(int id, TodoItem item)
    {
        var existing = GetById(id);
        if (existing == null) return null;
        existing.Title = item.Title;
        existing.IsCompleted = item.IsCompleted;
        return existing;
    }

    public bool Delete(int id)
    {
        var item = GetById(id);
        if (item == null) return false;
        return _items.Remove(item);
    }
}

Enregistrez le service dans le conteneur DI dans Program.cs :

<                

Blogs

Book Recommendations