Introduction : L'API REST en C# – c'est simple
Créer une API REST moderne en C# avec ASP.NET Core est l'une des tâches les plus demandées dans le développement backend. De nombreux développeurs débutants pensent qu'écrire une API complète nécessite des semaines de préparation. En réalité, en utilisant les bons outils, vous pouvez créer une API REST fonctionnelle en C# en seulement 30 minutes.
Dans cet article, nous allons voir concrètement comment écrire une API REST en C# à partir de zéro. Nous créerons un microservice simple pour gérer une liste de tâches (Todo List), en utilisant les fonctionnalités intégrées d'ASP.NET Core. Vous apprendrez à configurer le routage, implémenter les opérations CRUD et tester l'API via Swagger UI.
1. Configuration du projet en 5 minutes
Pour commencer, assurez-vous d'avoir installé le .NET SDK 6.0 ou plus récent. Sinon, téléchargez-le depuis le site officiel de Microsoft. Ouvrez un terminal et exécutez les commandes suivantes :
dotnet new webapi -n TodoApicd TodoApicode .Ces commandes créeront un nouveau projet Web API et l'ouvriront dans Visual Studio Code. La structure du projet comprend plusieurs fichiers importants :
Program.cs— point d'entrée et configuration des servicesControllers/— dossier pour les contrôleurs APIappsettings.json— fichier de configuration
Par défaut, le projet contient déjà un exemple de contrôleur WeatherForecastController. Nous allons le supprimer et créer le nôtre.
Important : Assurez-vous que le fichier Program.cs contient les lignes builder.Services.AddControllers(); et app.MapControllers();. Il s'agit de la configuration standard pour une API REST en C#.
2. Création du modèle de données et du contrôleur (10 minutes)
Commençons par créer le modèle de données. Dans le dossier racine du projet, créez un dossier Models et ajoutez-y le fichier TodoItem.cs :
public class TodoItem{ public int Id { get; set; } public string Title { get; set; } = string.Empty; public bool IsComplete { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow;}Créons maintenant le contrôleur. Dans le dossier Controllers, ajoutez le fichier TodoController.cs. C'est le cœur de notre API REST en C# :
[ApiController][Route("api/[controller]")]public class TodoController : ControllerBase{ private static List<TodoItem> _todos = new(); private static int _nextId = 1;
[HttpGet] public IActionResult GetAll() { return Ok(_todos); }
[HttpGet("{id}")] public IActionResult GetById(int id) { var todo = _todos.FirstOrDefault(t => t.Id == id); if (todo == null) return NotFound(); return Ok(todo); }
[HttpPost] public IActionResult Create(TodoItem item) { item.Id = _nextId++; _todos.Add(item); return CreatedAtAction(nameof(GetById), new { id = item.Id }, item); }
[HttpPut("{id}")] public IActionResult Update(int id, TodoItem item) { var existing = _todos.FirstOrDefault(t => t.Id == id); if (existing == null) return NotFound(); existing.Title = item.Title; existing.IsComplete = item.IsComplete; return NoContent(); }
[HttpDelete("{id}")] public IActionResult Delete(int id) { var todo = _todos.FirstOrDefault(t => t.Id == id); if (todo == null) return NotFound(); _todos.Remove(todo); return NoContent(); }}Notez les attributs :
[ApiController]— active la validation automatique des modèles[Route("api/[controller]")]— définit la route de base/api/todo[HttpGet], [HttpPost], [HttpPut], [HttpDelete]— lient les