Compartir vía


Publicación de una API web de ASP.NET Core en Azure API Management con Visual Studio

Por Matt Soucoup

En este tutorial aprenderá a crear un proyecto de API web de ASP.NET Core mediante Visual Studio, asegurarse de que tiene compatibilidad con OpenAPI y, a continuación, publicar la API web en Azure App Service y Azure API Management.

Configuración

Para completar el tutorial, necesitará una cuenta de Azure.

Creación de una API web de ASP.NET Core

Visual Studio permite crear fácilmente un nuevo proyecto de API web de ASP.NET Core a partir de una plantilla. Siga estas instrucciones para crear un nuevo proyecto de API web de ASP.NET Core:

  • En el menú Archivo, seleccione Nuevo>Proyecto.
  • Escriba Web API en el cuadro de búsqueda.
  • Seleccione la plantilla ASP.NET Core Web API y luego seleccione Siguiente .
  • En el cuadro de diálogo Configurar el nuevo proyecto, asigne al proyecto el nombre WeatherAPI y seleccione Siguiente.
  • En el cuadro de diálogo Información adicional:
  • Confirme que el Marco es .NET 6.0 (Compatibilidad a largo plazo).
  • Confirme que la casilla Usar controladores (desactivar para usar API mínimas) está activada.
  • Confirme que la casilla de verificación para Habilitar compatibilidad con OpenAPI está seleccionada.
  • Seleccione Crear.

Exploración del código

Las definiciones de Swagger permiten a Azure API Management leer las definiciones de API de la aplicación. Al activar la casilla Habilitar compatibilidad con OpenAPI durante la creación de la aplicación, Visual Studio agrega automáticamente el código para crear las definiciones de Swagger. Abra el archivo Program.cs que muestra el código siguiente:


...

builder.Services.AddSwaggerGen();

...

if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI(); // Protected by if (env.IsDevelopment())
}

...

Asegúrese de que las definiciones de Swagger siempre se generan

Azure API Management necesita que las definiciones de Swagger estén siempre presentes, independientemente del entorno de la aplicación. Para asegurarse de que siempre se generan, mueva app.UseSwagger(); fuera del bloque if (app.Environment.IsDevelopment()).

El código actualizado:


...

app.UseSwagger();

if (app.Environment.IsDevelopment())
{
    app.UseSwaggerUI();
}

...

Cambio del enrutamiento de API

Cambie la estructura de URL necesaria para acceder a la acción Get de WeatherForecastController. Complete los pasos siguientes:

  1. Abra el archivo WeatherForecastController.cs.

  2. Reemplace el atributo de nivel de clase [Route("[controller]")] por [Route("/")]. Definición de clase actualizada:

    [ApiController]
    [Route("/")]
    public class WeatherForecastController : ControllerBase
    

Publicación de la API web en Azure App Service

Complete los pasos siguientes para publicar la API web de ASP.NET Core en Azure API Management:

  1. Publique la aplicación de API en Azure App Service.
  2. Publique la aplicación de API web de ASP.NET Core en la instancia del servicio Azure API Management.

Publicación de la aplicación de API en Azure App Service

Complete los pasos siguientes para publicar la API web de ASP.NET Core en Azure API Management:

  1. En Solution Explorer, haga clic con el botón derecho en el proyecto y seleccione Publicar.

  2. En el cuadro de diálogo Publicar, seleccione Azure y el botón Siguiente.

  3. Seleccione Azure App Service (Windows) y el botón Siguiente.

  4. Seleccione Crear un nuevo servicio de aplicación de Azure.

    Aparece el cuadro de diálogo Crear App Service. Los campos de entrada de Nombre de Aplicación, Grupo de Recursos, y Plan de Servicio de Aplicaciones están completados. Puede conservar estos nombres o cambiarlos.

  5. Seleccione el botón Crear.

  6. Una vez creado el servicio de aplicaciones, seleccione el botón Siguiente.

  7. Seleccione Crear un nuevo servicio de Gestión de API.

    Aparece el cuadro de diálogo Crear servicio API Management. Puede dejar los campos de entrada Nombre de API, Nombre de suscripción y Grupo de recursos tal y como están. Seleccione el botón nuevo situado junto a la entrada Servicio API Management y rellene los campos necesarios de ese cuadro de diálogo.

    Seleccione el botón OK para crear el servicio de API Management.

  8. Seleccione el botón Crear para continuar con la creación del servicio API Management. Este paso puede tardar varios minutos en completarse.

  9. Cuando finalice, seleccione el botón Finalizar.

  10. El cuadro de diálogo se cierra y aparece una pantalla de resumen con información sobre la publicación. Seleccione el botón Publicar.

    La API web se publica tanto en Azure App Service como en Azure API Management. Aparecerá una nueva ventana del explorador y se mostrará la API que se ejecuta en Azure App Service. Puede cerrar esa ventana.

  11. Abra Azure Portal en un explorador web y vaya a la instancia de API Management que creó.

  12. Seleccione la opción APIs del menú de la izquierda.

  13. Seleccione la API que creó en los pasos anteriores. Ahora está poblado y se puede explorar alrededor.

Configuración del nombre de la API publicada

Observe que el nombre de la API se denomina WeatherAPI; sin embargo, nos gustaría llamarlo Pronósticos meteorológicos. Complete los pasos siguientes para actualizar el nombre:

  1. Agregue lo siguiente a Program.cs inmediatamente después de services.AddSwaggerGen();

    builder.Services.ConfigureSwaggerGen(setup =>
    {
        setup.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
        {
            Title = "Weather Forecasts",
            Version = "v1"
        });
    });
    
  2. Vuelva a publicar la API web de ASP.NET Core y abra la instancia de Azure API Management en Azure Portal.

  3. Actualice la página en el explorador. Verá que el nombre de la API es correcto.

Comprobación de que la API web funciona

Puede probar la API web de ASP.NET Core implementada en Azure API Management desde Azure Portal con los pasos siguientes:

  1. Abra la pestaña Prueba.
  2. Seleccione / o la operación Get.
  3. Seleccione Enviar.

Limpiar

Cuando haya terminado de probar la aplicación, vaya a la Azure Portal y elimine la aplicación.

  1. Seleccione Grupos de recursosy, después, seleccione el grupo de recursos que creó.

  2. En la página Grupos de recursos, seleccione Eliminar.

  3. Escriba el nombre del grupo de recursos y seleccione Eliminar. La aplicación y todos los demás recursos creados en este tutorial ahora se eliminan de Azure.

Recursos adicionales