Condividi tramite


Pubblicare un'API Web ASP.NET Core in Gestione API di Azure con Visual Studio

Di Matt Soucoup

In questa esercitazione si apprenderà come creare un progetto API Web di ASP.NET Core usando Visual Studio, assicurarsi che disponga del supporto OpenAPI e quindi pubblicare l'API Web sia nel servizio app di Azure che in Gestione API di Azure.

Impostare

Per completare l'esercitazione è necessario un account Azure.

  • Apri un account Azure gratuito se non ne hai uno.

Creare un'API Web ASP.NET Core

Visual Studio consente di creare facilmente un nuovo progetto API Web di ASP.NET Core da un modello. Seguire queste istruzioni per creare un nuovo progetto API Web di ASP.NET Core:

  • Scegliere Nuovo progetto>dal menu File.
  • Immettere Web API nella casella di ricerca.
  • Selezionare il modello ASP.NET Core Web API e selezionare Avanti.
  • Nella finestra di dialogo Configura il nuovo progettoassegnare al progetto il nome WeatherAPI e selezionare Avanti.
  • Nella finestra di dialogo informazioni aggiuntive:
  • Confermare che il Framework sia .NET 6.0 (supporto a lungo termine).
  • Verificare che sia selezionata la casella di controllo per Usa controller (deselezionare l'uso delle API minime).
  • Verificare che sia selezionata la casella di controllo per Abilitare il supporto OpenAPI.
  • Seleziona Crea.

Esplorare il codice

Le definizioni di Swagger consentono a Gestione API di Azure di leggere le definizioni api dell'app. Selezionando la casella di controllo Abilita supporto OpenAPI durante la creazione dell'app, Visual Studio aggiunge automaticamente il codice per creare le definizioni di Swagger. Aprire il file Program.cs che mostra il codice seguente:


...

builder.Services.AddSwaggerGen();

...

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

...

Verificare che le definizioni di Swagger siano sempre generate

Gestione API di Azure richiede che le definizioni di Swagger siano sempre presenti, indipendentemente dall'ambiente dell'applicazione. Per assicurarsi che vengano sempre generati, spostare app.UseSwagger(); all'esterno del blocco if (app.Environment.IsDevelopment()).

Il codice aggiornato:


...

app.UseSwagger();

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

...

Modificare il routing dell'API

Modificare la struttura dell'URL necessaria per accedere all'azione Get del WeatherForecastController. Completare i passaggi seguenti:

  1. Aprire il file WeatherForecastController.cs.

  2. Sostituire l'attributo a livello di classe [Route("[controller]")] con [Route("/")]. Definizione della classe aggiornata:

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

Pubblicare l'API Web nel servizio app di Azure

Completare i passaggi seguenti per pubblicare l'API Web ASP.NET Core in Gestione API di Azure:

  1. Pubblicare l'app per le API nel servizio app di Azure.
  2. Pubblica l'app Web API di ASP.NET Core nell'istanza del servizio Azure Gestione API.

Pubblicare l'app per le API in Servizio app di Azure

Completare i passaggi seguenti per pubblicare l'API Web ASP.NET Core in Gestione API di Azure:

  1. In Esplora Soluzioni, fare clic con il pulsante destro del mouse sul progetto e selezionare Pubblica.

  2. Nella finestra di dialogo Pubblica selezionare Azure e selezionare il pulsante Avanti.

  3. Selezionare App Service di Azure (Windows) e selezionare il pulsante Avanti.

  4. Selezionare Crea un nuovo App Service di Azure.

    Viene visualizzata la finestra di dialogo Crea Servizio App. I campi di immissione Nome app, Gruppo di risorsee Piano di servizio app vengono popolati. È possibile mantenere questi nomi o modificarli.

  5. Selezionare il pulsante Crea.

  6. Dopo aver creato il servizio app, seleziona il pulsante Avanti.

  7. Selezionare Crea un nuovo Servizio di Gestione API.

    La finestra di dialogo Crea servizio Gestione API viene visualizzata. È possibile lasciare i campi di immissione del nome API, del nome sottoscrizionee del gruppo di risorse così come sono. Selezionare il pulsante nuovo accanto alla voce servizio Gestione API e immettere i campi obbligatori da tale finestra di dialogo.

    Selezionare il pulsante OK per creare il servizio Gestione API.

  8. Selezionare il pulsante Crea per procedere con la creazione del servizio Gestione API. Il completamento di questo passaggio può richiedere alcuni minuti.

  9. Al termine, selezionare il pulsante Fine.

  10. La finestra di dialogo si chiude e viene visualizzata una schermata di riepilogo con informazioni sulla pubblicazione. Selezionare il pulsante Pubblica.

    L'API Web pubblica sia nel servizio app di Azure che nella Gestione API di Azure. Verrà visualizzata una nuova finestra del browser e verrà visualizzata l'API in esecuzione nel servizio app di Azure. È possibile chiudere la finestra.

  11. Aprire il portale di Azure in un Web browser e passare all'istanza di Gestione API creata.

  12. Selezionare l'opzione API dal menu a sinistra.

  13. Selezionare l'API creata nei passaggi precedenti. È ora popolato ed è possibile esplorare.

Configurare il nome dell'API pubblicato

Si noti che il nome dell'API è denominato WeatherAPI; Tuttavia, vorremmo chiamarlo Previsioni meteo. Completare i passaggi seguenti per aggiornare il nome:

  1. Aggiungere quanto segue a Program.cs immediatamente dopo services.AddSwaggerGen();

    builder.Services.ConfigureSwaggerGen(setup =>
    {
        setup.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
        {
            Title = "Weather Forecasts",
            Version = "v1"
        });
    });
    
  2. Ripubblicare l'API Web di ASP.NET Core e aprire l'istanza di Gestione API di Azure nel portale di Azure.

  3. Aggiornare la pagina nel browser. Si noterà che il nome dell'API è ora corretto.

Verificare che l'API Web funzioni

È possibile testare l'API Web ASP.NET Core distribuita in Gestione API di Azure dal portale di Azure seguendo questa procedura:

  1. Apri la scheda Test.
  2. Selezionare / o l'operazione Get.
  3. Seleziona Invia.

Pulire

Al termine del test dell'app, passare al portale di Azure ed eliminare l'app.

  1. Selezionare Gruppi di risorse, quindi selezionare il gruppo di risorse creato.

  2. Nella pagina Gruppi di risorse, seleziona Elimina.

  3. Immettere il nome del gruppo di risorse e selezionare Elimina. L'app e tutte le altre risorse create in questa esercitazione vengono ora eliminate da Azure.

Risorse aggiuntive