Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
Dit is niet de nieuwste versie van dit artikel. Zie de .NET 9-versie van dit artikelvoor de huidige release.
Waarschuwing
Deze versie van ASP.NET Core wordt niet meer ondersteund. Zie de .NET- en .NET Core-ondersteuningsbeleidvoor meer informatie. Zie de .NET 9-versie van dit artikelvoor de huidige release.
Belangrijk
Deze informatie heeft betrekking op een pre-releaseproduct dat aanzienlijk kan worden gewijzigd voordat het commercieel wordt uitgebracht. Microsoft geeft geen garanties, uitdrukkelijk of impliciet, met betrekking tot de informatie die hier wordt verstrekt.
Zie de .NET 9-versie van dit artikelvoor de huidige release.
ASP.NET Core biedt twee benaderingen voor het bouwen van HTTP-API's: minimale API's en op controller gebaseerde API's. Voor nieuwe projecten raden we u aan minimale API's te gebruiken omdat ze een vereenvoudigde, krachtige benadering bieden voor het bouwen van API's met minimale code en configuratie.
Minimale API's - aanbevolen voor nieuwe projecten
Minimale API's zijn de aanbevolen methode voor het bouwen van snelle HTTP-API's met ASP.NET Core. Hiermee kunt u volledig functionerende REST eindpunten bouwen met minimale code en configuratie. Sla traditionele scaffolding over en vermijd onnodige controllers door vloeiend API-routes en -acties te declareren.
Hier volgt een eenvoudig voorbeeld waarmee een API wordt gemaakt in de hoofdmap van de web-app:
var app = WebApplication.Create(args);
app.MapGet("/", () => "Hello World!");
app.Run();
De meeste API's accepteren parameters als onderdeel van de route:
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();
Minimale API's ondersteunen de configuratie en aanpassing die nodig zijn om te schalen naar meerdere API's, complexe routes te verwerken, autorisatieregels toe te passen en de inhoud van API-antwoorden te beheren.
Aan de slag met minimale API's
- Zelfstudie: Zelfstudie: Een minimale API maken met ASP.NET Core
- Snelzoekgids: Beknopt overzicht van minimale API's
- Voorbeelden: Voor een volledige lijst met veelvoorkomende scenario's met codevoorbeelden raadpleegt u snelzoekgids voor minimale API's
Api's op basis van een controller - Alternatieve benadering
ASP.NET Core biedt ook ondersteuning voor een op controller gebaseerde benadering waarbij controllers klassen zijn die zijn afgeleid van ControllerBase. Deze benadering volgt traditionele objectgeoriënteerde patronen en kan de voorkeur hebben voor:
- Grote toepassingen met complexe bedrijfslogica
- Teams die bekend zijn met het MVC-patroon
- Toepassingen waarvoor specifieke MVC-functies zijn vereist
Hier volgt voorbeeldcode voor een API op basis van controllers:
namespace APIWithControllers;
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
var app = builder.Build();
app.UseHttpsRedirection();
app.MapControllers();
app.Run();
}
}
using Microsoft.AspNetCore.Mvc;
namespace APIWithControllers.Controllers;
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
private readonly ILogger<WeatherForecastController> _logger;
public WeatherForecastController(ILogger<WeatherForecastController> logger)
{
_logger = logger;
}
[HttpGet(Name = "GetWeatherForecast")]
public IEnumerable<WeatherForecast> Get()
{
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
})
.ToArray();
}
}
De volgende code biedt dezelfde functionaliteit met behulp van de aanbevolen minimale API-benadering:
namespace MinimalAPI;
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.UseHttpsRedirection();
var summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
app.MapGet("/weatherforecast", (HttpContext httpContext) =>
{
var forecast = Enumerable.Range(1, 5).Select(index =>
new WeatherForecast
{
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = summaries[Random.Shared.Next(summaries.Length)]
})
.ToArray();
return forecast;
});
app.Run();
}
}
Beide API-projecten verwijzen naar de volgende klasse:
namespace APIWithControllers;
public class WeatherForecast
{
public DateOnly Date { get; set; }
public int TemperatureC { get; set; }
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
public string? Summary { get; set; }
}
Kiezen tussen benaderingen
Begin met Minimale API's voor nieuwe projecten. Ze bieden:
- Eenvoudigere syntaxis - Minder standaardcode
- Betere prestaties : minder overhead vergeleken met controllers
- Eenvoudiger testen - Vereenvoudigde eenheids- en integratietests
- Moderne benadering : maakt gebruik van de nieuwste .NET-functies
Overweeg api's op basis van een controller als u het volgende nodig hebt:
- Uitbreidbaarheid van modelbinding (IModelBinderProvider, IModelBinder)
- Geavanceerde validatiefuncties (IModelValidator)
- Toepassingsonderdelen of het toepassingsmodel
- Ondersteuning voor JsonPatch
- Ondersteuning voor OData
De meeste van deze functies kunnen worden geïmplementeerd in Minimale API's met aangepaste oplossingen, maar controllers bieden ze standaard.
Zie ook
- Zelfstudie: Een minimale API maken met ASP.NET Core - Zelfstudie minimale API
- Snelzoekgids voor minimale API's - Quick Reference voor minimale API's
- Web-API's maken met ASP.NET Core - Overzicht van api's op basis van controller
- Zelfstudie: Een web-API op basis van een controller maken met ASP.NET Core - Op controller gebaseerde API-zelfstudie
ASP.NET Core biedt twee benaderingen voor het bouwen van HTTP-API's: minimale API's en op controller gebaseerde API's. Voor nieuwe projecten raden we u aan minimale API's te gebruiken omdat ze een vereenvoudigde, krachtige benadering bieden voor het bouwen van API's met minimale code en configuratie.
Minimale API's - aanbevolen voor nieuwe projecten
Minimale API's zijn de aanbevolen methode voor het bouwen van snelle HTTP-API's met ASP.NET Core. Hiermee kunt u volledig functionerende REST eindpunten bouwen met minimale code en configuratie.
Hier volgt een eenvoudig voorbeeld:
var app = WebApplication.Create(args);
app.MapGet("/", () => "Hello World!");
app.Run();
Aan de slag met minimale API's
- Zelfstudie: Zelfstudie: Een minimale API maken met ASP.NET Core
- Snelzoekgids: Beknopt overzicht van minimale API's
Api's op basis van een controller - Alternatieve benadering
Controllers zijn klassen die zijn afgeleid van ControllerBase. Deze benadering volgt traditionele objectgeoriënteerde patronen.
Hier volgt voorbeeldcode voor een API op basis van controllers:
namespace APIWithControllers;
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
var app = builder.Build();
app.UseHttpsRedirection();
app.MapControllers();
app.Run();
}
}
using Microsoft.AspNetCore.Mvc;
namespace APIWithControllers.Controllers;
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
private readonly ILogger<WeatherForecastController> _logger;
public WeatherForecastController(ILogger<WeatherForecastController> logger)
{
_logger = logger;
}
[HttpGet(Name = "GetWeatherForecast")]
public IEnumerable<WeatherForecast> Get()
{
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
})
.ToArray();
}
}
De volgende code biedt dezelfde functionaliteit met behulp van de aanbevolen minimale API-benadering:
namespace MinimalAPI;
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.UseHttpsRedirection();
var summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
app.MapGet("/weatherforecast", (HttpContext httpContext) =>
{
var forecast = Enumerable.Range(1, 5).Select(index =>
new WeatherForecast
{
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = summaries[Random.Shared.Next(summaries.Length)]
})
.ToArray();
return forecast;
});
app.Run();
}
}
Beide API-projecten verwijzen naar de volgende klasse:
namespace APIWithControllers;
public class WeatherForecast
{
public DateOnly Date { get; set; }
public int TemperatureC { get; set; }
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
public string? Summary { get; set; }
}
Kiezen tussen benaderingen
Begin met Minimale API's voor nieuwe projecten. Overweeg api's op basis van een controller als u het volgende nodig hebt:
- Uitbreidbaarheid van modelbinding (IModelBinderProvider, IModelBinder)
- Ondersteuning voor formulierbindingen, inclusief IFormFile
- Geavanceerde validatiefuncties (IModelValidator)
- Toepassingsonderdelen of het toepassingsmodel
- Ondersteuning voor JsonPatch
- Ondersteuning voor OData
Zie ook
- Zelfstudie: Een minimale API maken met ASP.NET Core - Zelfstudie minimale API
- Snelzoekgids voor minimale API's - Quick Reference voor minimale API's
- Web-API's maken met ASP.NET Core - Overzicht van api's op basis van controller
- Zelfstudie: Een web-API op basis van een controller maken met ASP.NET Core - Op controller gebaseerde API-zelfstudie