Les contrôleurs gèrent les demandes entrantes et sortantes d’une API, créent une réponse HTTP appropriée pour les clients, accèdent aux données via des services, et assurent la sécurité et les autorisations de ces données. Ils sont essentiels pour la gestion des interactions entre les clients et l’API.
Comment créer les contrôleurs (controllers) de l’API
1- Création du contrôleur ‘UserControllers.cs’
2- Injecter la dépendance au Repository
3- Ajouter une méthode HttpGet
4- Lancer l’API
1- Création du contrôleur ‘UserControllers.cs’



using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace LootManagerLite.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class UserController : ControllerBase
{
}
}
On peut simplifier la Route en enlevant api/ :
[Route("[controller]")]
2- Injecter la dépendance au Repository
Injecter la dépendance du service IUserRepository pour accéder aux données de Users et les gérer via les actions HTTP.
public class UserController : ControllerBase
{
IUserRepository userRepository;
public UserController(IUserRepository userRepository)
{
this.userRepository = userRepository;
}
}
Pour résoudre la déclaration de ‘IUserRepository‘, ajoutez ‘builder.Services.AddScoped<IUserRepository', 'UserRepository>();‘ dans le fichier ‘Program.cs‘. Cela indique que si un ‘IUserRepository‘ est demandé, il sera implémenté par ‘UserRepository‘ et sera stocké dans la variable ‘userRepository‘.
3- Ajouter une méthode HttpGet
[HttpGet]
public async Task<ActionResult<List<User>>> GetAllUsers()
{
var users = await userRepository.GetAllUsersAsync();
return Ok(users);
}
4- Lancer L’API
Lancer l’API en Debug Mode

S’il n’y a pas d’erreur de code, l’interface Swagger s’affiche dans le navigateur.

Cliquer sur “Try it out” pour tester la fonction Get

“Execute” pour lancer la requête


Les codes de réponse HTTP envoyés par le serveur indique le résultat de la requête :
- 1xx (Information): Indique que le serveur a reçu la demande et attend que le client agisse davantage.
- 2xx (Succès): Indique que la demande a été reçue et traitée avec succès par le serveur. Exemples : 200 OK, 201 Created, 204 No Content.
- 3xx (Redirection): Indique que la requête nécessite une action supplémentaire pour être achevée. Exemples : 301 Moved Permanently, 302 Found, 304 Not Modified.
- 4xx (Erreur client): Indique que la requête envoyée par le client était mal formée ou ne peut pas être traitée. Exemples : 400 Bad Request, 401 Unauthorized, 404 Not Found.
- 5xx (Erreur serveur): Indique que le serveur a rencontré une erreur en essayant de traiter la demande. Exemples : 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable.
En utilisant ces codes de réponse HTTP, le serveur peut indiquer au client si la requête a réussi ou échoué, et si elle a besoin d’une action supplémentaire de la part du client.
