Explorer les API principales ASP.NET
ASP.NET Core prend en charge deux approches pour créer des API : une approche basée sur un contrôleur et des API minimales. Une API basée sur un contrôleur est une approche traditionnelle de la création d’API dans laquelle chaque point de terminaison est mappé à une classe de contrôleur spécifique. Le contrôleur gère la requête, effectue toute logique métier nécessaire et retourne une réponse.
API basée sur le contrôleur
Une API web basée sur un contrôleur se compose d’une ou plusieurs classes de contrôleur qui dérivent de ControllerBase. Voici un exemple de contrôleur :
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
Les contrôleurs d’API web doivent généralement dériver de ControllerBase plutôt de Controller. Controller dérive de ControllerBase et ajoute la prise en charge des vues. Il s’agit donc de gérer les pages web, et non les demandes d’API web.
La classe ControllerBase fournit de nombreuses propriétés et méthodes utiles pour la gestion des requêtes HTTP. Par exemple, dans l’exemple de code suivant, CreatedAtAction retourne un code d’état 201 :
[HttpPost]
[ProducesResponseType(StatusCodes.Status201Created)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
public ActionResult<Pet> Create(Pet pet)
{
pet.Id = _petsInMemoryStore.Any() ?
_petsInMemoryStore.Max(p => p.Id) + 1 : 1;
_petsInMemoryStore.Add(pet);
return CreatedAtAction(nameof(GetById), new { id = pet.Id }, pet);
}
API minimale
Les API minimales sont une approche simplifiée pour créer des API HTTP rapides avec ASP.NET Core. Vous pouvez générer des points de terminaison REST entièrement fonctionnels avec un code et une configuration minimes. Ignorez la génération de modèles automatique traditionnelle en déclarant des actions et des itinéraires d’API. Par exemple, le code suivant crée une API à la racine de l’application web qui retourne le texte « Hello World ! ».
var app = WebApplication.Create(args);
app.MapGet("/", () => "Hello World!");
app.Run();
La plupart des API acceptent les paramètres dans le cadre de l’itinéraire.
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/users/{userId}/books/{bookId}",
(int userId, int bookId) => $"The user id is {userId} and book id is {bookId}");
app.Run();
Les API minimales prennent en charge la configuration et la personnalisation nécessaires pour effectuer une mise à l’échelle vers plusieurs API, gérer des itinéraires complexes, appliquer des règles d’autorisation et contrôler le contenu des réponses d’API.