ASP.NET Core ofrece un modelo de alojamiento simplificado, llamado API mínimas, que nos permite crear API ligeras con dependencias mínimas. Ideales para crear servicios rápidos y simples, las API mínimas se introdujeron inicialmente en ASP.NET Core 6 para eliminar la complejidad de las API tradicionales y facilitar la creación de microservicios.
El objetivo de esta publicación es explorar las nuevas funciones para crear API mínimas. introducido en ASP.NET Core 8. Para utilizar los ejemplos de código proporcionados en este artículo, debe tener Visual Studio 2022 instalado en su sistema. Si aún no tienes una copia, puedes descargue Visual Studio 2022 aquí.
Cree un proyecto de API web ASP.NET Core en Visual Studio 2022
Para crear un proyecto de API web ASP.NET Core 8 en Visual Studio 2022, siga los pasos que se describen a continuación.
- Inicie el IDE de Visual Studio 2022.
- Haga clic en «Crear nuevo proyecto».
- En la ventana «Crear nuevo proyecto», seleccione «ASP.NET Core Web API» de la lista de plantillas que se muestran.
- Haga clic en Siguiente.
- En la ventana «Configura tu nuevo proyecto», especifica el nombre y la ubicación del nuevo proyecto. Opcionalmente, marque la casilla de verificación «Colocar solución y proyecto en el mismo directorio», según sus preferencias.
- Haga clic en Siguiente.
- En la ventana «Información adicional» que se muestra a continuación, seleccione «.NET 8.0 (soporte a largo plazo)» como versión del marco y desmarque la casilla de verificación que dice «Usar controladores», ya que usaremos API mínimas en este proyecto.
- En otra parte de la ventana «Información adicional», deje el «Tipo de autenticación» configurado en «Ninguno» (el valor predeterminado) y asegúrese de que las casillas de verificación «Habilitar compatibilidad con Open API», «Configurar para HTTPS» y «Habilitar Docker» permanezcan sin marcar. . No utilizaremos ninguna de esas funciones aquí.
- Haga clic en Crear.
Usaremos este proyecto ASP.NET Core Web API para trabajar con los ejemplos de código que se proporcionan en las secciones siguientes.
Cree una API mínima en ASP.NET Core
Puede reemplazar el código generado con el siguiente fragmento de código para crear una API mínima.
var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); app.MapGet("https://www.infoworld.com/", () => "Hello, World!"); app.Run();
Cuando ejecuta la aplicación, aparece el texto «¡Hola mundo!» se mostrará en su navegador web.
Examinaremos las nuevas funciones de la API mínima en las secciones siguientes.
Utilice el enlace de modelos en API mínimas
Se agregó soporte para el enlace FromForm a las API mínimas con ASP.NET Core 8. Antes de explorar el enlace FromForm, echemos un vistazo rápido a los otros tipos de enlace de modelos que podemos usar en las API mínimas.
Las API mínimas de ASP.NET Core brindan soporte para los siguientes tipos de enlace de modelos:
- DeEncuadernación corporal
- Enlace de encabezado
- Desde enlace de ruta
- Enlace de consulta
- Encuadernación desde formulario
Con el nuevo soporte para el enlace FromForm en API mínimas, el enlace de parámetros de formularios ahora es compatible con colecciones como listas y diccionarios y para tipos complejos.
DeEncuadernación corporal
El enlace FromBody extrae datos del cuerpo de la solicitud HTTP y los asigna a los parámetros de sus métodos de acción.
[HttpPost] public IActionResult CreateAuthor([FromBody] Author author) { //Usual code }
Enlace de encabezado
El enlace FromHeader extrae datos de los encabezados de solicitud HTTP y los asigna a los parámetros de sus métodos de acción.
[HttpGet] public IActionResult GetAuthors([FromHeader("Authorization")] string authHeader) { //Write your code here to validate the authorization token }
Desde enlace de ruta
El enlace FromRoute se utiliza para recuperar datos de los segmentos de ruta de la URL de solicitud y asignarlos a los parámetros de sus métodos de acción. Puede utilizar este tipo de enlace de modelo para identificar un recurso específico.
[HttpGet("{id}")] public IActionResult GetAuthorById(int id) { //Write your code here to retrieve an author instance based on id }
Enlace de consulta
El enlace FromQuery se utiliza para recuperar datos de la cadena de consulta de una solicitud HTTP y utilizarlos para completar un objeto modelo.
[HttpGet] public ActionResult<List<Author>> GetAuthors([FromQuery] AuthorFilter filter) { //Write code here to process the filter criteria and retrieve the list of filtered author records }
Encuadernación desde formulario
Puede utilizar el enlace FromForm para extraer datos de los campos de formulario publicados en sus API mínimas. Por ejemplo, el siguiente fragmento de código ilustra cómo puede utilizar los parámetros extraídos de un formulario publicado para crear una nueva instancia de Autor.
[HttpPost] public async Task<IActionResult> CreateAuthor([FromForm] Author author) { //Usual code }
Utilice tokens antifalsificación en API mínimas
ASP.NET Core 8 también brinda soporte para tokens antifalsificación a API mínimas. Para utilizar esta función, debe llamar al método AddAntiForgery para registrar servicios antifalsificación con la canalización de procesamiento de solicitudes, como se muestra en el fragmento de código que se muestra a continuación.
var builder = WebApplication.CreateBuilder(); builder.Services.AddAntiforgery(); var app = builder.Build(); app.MapGet("https://www.infoworld.com/",()=>"Hello World!"); app.Run();
El siguiente fragmento de código muestra cómo puede utilizar tokens antifalsificación en sus API mínimas.
app.MapGet("https://www.infoworld.com/", (HttpContext context, IAntiforgery antiforgery) => { var token = antiforgery.GetAndStoreTokens(context); return Results.Ok("Success..."); });
Utilice AOT nativo en API mínimas
Puede compilar directamente código .NET en código nativo con anticipación (AOT) utilizando las capacidades de AOT nativo compatibles con .NET Core. La precompilación mejorará el tiempo de inicio de su aplicación porque elimina el requisito de compilación justo a tiempo (JIT) durante el tiempo de ejecución.
Ahora puede aprovechar la compatibilidad con AOT nativo en sus API mínimas en ASP.NET Core 8. Para agregar compatibilidad con AOT nativo a su proyecto, debe agregar la propiedad PublishAot a su archivo de proyecto como se muestra en el fragmento de código a continuación.
<PropertyGroup><PublishAot>true</PublishAot></PropertyGroup>
Tenga en cuenta que también puede usar el siguiente comando en el símbolo del sistema del desarrollador de Visual Studio para crear un nuevo proyecto de API mínimo con compatibilidad nativa con AOT habilitada. Luego, puede precompilar sus ensamblajes de API mínima de ASP.NET Core en código nativo que se ejecutará directamente en el sistema de destino en lugar de agruparlos con el tiempo de ejecución de .NET Core.
dotnet new webapiaot
API mínimas en ASP.NET Core 9
En el ecosistema ASP.NET Core, la compatibilidad con API mínimas mejora día a día. Si bien .NET 9 aún se encuentra en estado de vista previa, se han agregado varias características nuevas a las API mínimas en ASP.NET Core 9. Las analizaré en una publicación futura aquí cuando esté disponible el lanzamiento oficial de ASP.NET Core 9.
Copyright © 2024 IDG Communications, Inc.