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

\n

L'API REST (Representational State Transfer) est un style architectural pour créer des services web, utilisé aujourd'hui dans presque toutes les applications modernes. Si vous voulez apprendre rapidement à écrire un backend en C#, alors ASP.NET Core est le meilleur choix pour démarrer. Dans cet article, nous allons créer en 30 minutes une API REST complète pour gérer une liste de tâches (Todo List). Vous apprendrez à configurer le projet, écrire des contrôleurs, connecter une base de données et tester l'API via Swagger.

\n

Prêt ? C'est parti !

\n\n

Étape 1 : Création du projet et configuration de l'environnement

\n

Avant tout, nous avons besoin du .NET SDK installé (version 6.0 ou ultérieure). Vous pouvez le télécharger depuis le site officiel de Microsoft. Après installation, ouvrez le terminal ou l'invite de commandes et créez un nouveau projet :

\n
dotnet new webapi -n TodoApi\ncd TodoApi
\n

Cette commande crée un modèle d'API web avec Swagger préinstallé. Ouvrez le projet dans Visual Studio Code ou tout autre IDE. La structure du projet inclut déjà les dossiers Controllers, Models et le fichier Program.cs.

\n

Ajoutons maintenant la prise en charge d'Entity Framework Core pour travailler avec la base de données. Installons les packages nécessaires :

\n
dotnet add package Microsoft.EntityFrameworkCore.InMemory\ndotnet add package Microsoft.EntityFrameworkCore.Design
\n

Nous utilisons une base InMemory pour simplifier — les données seront stockées en mémoire vive. Pour la production, vous pouvez la remplacer par SQL Server ou PostgreSQL.

\n\n

Étape 2 : Création du modèle de données et du contexte de base de données

\n

Créons le modèle TodoItem. Dans le dossier Models, créez un fichier TodoItem.cs :

\n
namespace TodoApi.Models;\n\npublic class TodoItem\n{\n    public long Id { get; set; }\n    public string? Title { get; set; }\n    public bool IsComplete { get; set; }\n}
\n

Créons maintenant le contexte de base de données. Dans le dossier Data (s'il n'existe pas, créez-le), ajoutez le fichier TodoContext.cs :

\n
using Microsoft.EntityFrameworkCore;\nusing TodoApi.Models;\n\nnamespace TodoApi.Data;\n\npublic class TodoContext : DbContext\n{\n    public TodoContext(DbContextOptions<TodoContext> options) : base(options) { }\n    public DbSet<TodoItem> TodoItems { get; set; }\n}
\n

Enregistrons le contexte dans Program.cs :

\n
using Microsoft.EntityFrameworkCore;\nusing TodoApi.Data;\n\nvar builder = WebApplication.CreateBuilder(args);\n\nbuilder.Services.AddDbContext<TodoContext>(opt =>\n    opt.UseInMemoryDatabase("TodoList"));\n\nbuilder.Services.AddControllers();\nbuilder.Services.AddEndpointsApiExplorer();\nbuilder.Services.AddSwaggerGen();\n\nvar app = builder.Build();\n\nif (app.Environment.IsDevelopment())\n{\n    app.UseSwagger();\n    app.UseSwaggerUI();\n}\n\napp.UseHttpsRedirection();\napp.UseAuthorization();\napp.MapControllers();\napp.Run();
\n\n

Étape 3 : Écriture du contrôleur avec les opérations CRUD

\n

Créons un contrôleur pour gérer les tâches. Dans le dossier Controllers, ajoutez le fichier TodoItemsController.cs :

\n
using Microsoft.AspNetCore.Mvc;\nusing Microsoft.EntityFrameworkCore;\nusing TodoApi.Data;\nusing TodoApi.Models;\n\nnamespace TodoApi.Controllers;\n\n[Route("api/[controller]")]\n[ApiController]\npublic class TodoItemsController : ControllerBase\n{\n    private readonly TodoContext _context;\n\n    public TodoItemsController(TodoContext context)\n    {\n        _context = context;\n    }\n\n    // GET: api/TodoItems\n    [HttpGet]\n    public async Task<ActionResult<IEnumerable<TodoItem>>> GetTodoItems()\n    {\n        return await _context.TodoItems.ToListAsync();\n    }\n\n    // GET: api/TodoItems/5\n    [HttpGet("{id}")]\n    public async Task<ActionResult<TodoItem>> GetTodoItem(long id)\n    {\n        var todoItem = await                

Blogs

Book Recommendations