Freigeben über


Veröffentlichen einer ASP.NET Core-Web-API in Azure API Management mit Visual Studio

Von Matt Soucoup

In diesem Tutorial erfahren Sie, wie Sie mit Visual Studio ein ASP.NET Core Web-API-Projekt erstellen, die OpenAPI-Unterstützung sicherstellen und dann die Web-API sowohl in Azure App Service als auch in Azure API Management veröffentlichen.

Einrichten

Zur Durchführung des Tutorials benötigen Sie ein Azure-Konto.

Erstellen einer ASP.NET Core-Web-API

Mit Visual Studio können Sie ein neues ASP.NET Core-Web-API-Projekt ganz einfach anhand einer Vorlage erstellen. Folgen Sie diesen Anweisungen, um ein neues ASP.NET Core-Web-API-Projekt zu erstellen:

  • Klicken Sie im Menü Datei auf Neu>Projekt.
  • Geben Sie Web-API in das Suchfeld ein.
  • Wählen Sie die ASP.NET Core-Web-API-Vorlage aus, und klicken Sie auf Weiter.
  • Geben Sie im Dialogfeld Neues Projekt konfigurieren dem Projekt den Namen WeatherAPI, und wählen Sie dann Weiter aus.
  • Im Dialogfeld Zusätzliche Informationen:
  • Vergewissern Sie sich, dass das Framework auf .NET 6.0 (Langfristiger Support) festgelegt ist.
  • Vergewissern Sie sich, dass das Kontrollkästchen Controller verwenden (zur Verwendung von Minimal-APIs deaktivieren) aktiviert ist.
  • Vergewissern Sie sich, dass das Kontrollkästchen OpenAPI-Unterstützung aktivieren aktiviert ist.
  • Klicken Sie auf Erstellen.

Untersuchen des Codes

Swagger-Definitionen ermöglichen es Azure API Management, die API-Definitionen der App zu lesen. Wenn Sie bei der App-Erstellung das Kontrollkästchen OpenAPI-Unterstützung aktivieren aktivieren, fügt Visual Studio automatisch den Code zum Erstellen der Swagger-Definitionen hinzu. Öffnen Sie die Datei Program.cs, die den folgenden Code enthält:


...

builder.Services.AddSwaggerGen();

...

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

...

Sicherstellen, dass immer Swagger-Definitionen generiert werden

Azure API Management benötigt die Swagger-Definitionen immer, unabhängig von der Umgebung der Anwendung. Um sicherzustellen, dass die Definitionen stets generiert werden, verschieben Sie app.UseSwagger(); außerhalb des if (app.Environment.IsDevelopment())-Blocks.

Der aktualisierte Code:


...

app.UseSwagger();

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

...

Ändern des API-Routings

Ändern Sie die URL-Struktur, die für den Zugriff auf die Get-Aktion von WeatherForecastController erforderlich ist. Führen Sie die folgenden Schritte aus:

  1. Öffnen Sie die Datei WeatherForecastController.cs.

  2. Ersetzen Sie das Attribut [Route("[controller]")] auf Klassenebene durch [Route("/")]. Die aktualisierte Klassendefinition:

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

Veröffentlichen der Web-API in Azure App Service

Führen Sie die folgenden Schritte aus, um die ASP.NET Core-Web-API in Azure API Management zu veröffentlichen:

  1. Veröffentlichen Sie die API-App in Azure App Service.
  2. Veröffentlichen Sie die ASP.NET Core-Web-API-App in der Azure API Management-Dienstinstanz.

Veröffentlichen Sie die API-App in Azure App Service

Führen Sie die folgenden Schritte aus, um die ASP.NET Core-Web-API in Azure API Management zu veröffentlichen:

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie Veröffentlichen aus.

  2. Wählen Sie im Dialogfeld Veröffentlichen die Option Azure und dann die Schaltfläche Weiter aus.

  3. Wählen Sie Azure App Service (Windows) aus, und klicken Sie dann auf die Schaltfläche Weiter.

  4. Klicken Sie auf Create a new Azure App Service (Neue Azure App Service-Instanz erstellen).

    Das Dialogfeld App Service erstellen wird angezeigt. Die Eingabefelder App-Name, Ressourcengruppe und App Service-Plan werden aufgefüllt. Sie können diese Namen beibehalten oder ändern.

  5. Wählen Sie die Schaltfläche Erstellen.

  6. Sobald der App-Dienst erstellt wurde, wählen Sie die Schaltfläche Weiter aus.

  7. Wählen Sie Neuen API Management-Dienst erstellen aus.

    Das Dialogfeld API Management-Dienst erstellen wird angezeigt. Sie können die Eingabefelder API-Name, Abonnementname und Ressourcengruppe unverändert übernehmen. Wählen Sie die Schaltfläche Neu neben dem Eintrag API Management-Dienst aus, und füllen Sie die Pflichtfelder in diesem Dialogfeld aus.

    Wählen Sie die Schaltfläche OK aus, um den API Management-Dienst zu erstellen.

  8. Wählen Sie die Schaltfläche Erstellen aus, um mit der Erstellung des API Management-Diensts fortzufahren. Dieser Schritt kann mehrere Minuten in Anspruch nehmen.

  9. Wenn der Vorgang abgeschlossen ist, wählen Sie die Schaltfläche Fertig stellen aus.

  10. Das Dialogfeld wird geschlossen und eine Zusammenfassung mit Informationen zur Veröffentlichung wird angezeigt. Wählen Sie die Schaltfläche Veröffentlichen aus.

    Die Web-API wird sowohl in Azure App Service als auch in Azure API Management veröffentlicht. Dann wird ein neues Browserfenster angezeigt, indem die API angezeigt wird, die in Azure App Service ausgeführt wird. Sie können dieses Fenster schließen.

  11. Öffnen Sie das Azure-Portal in einem Webbrowser, und navigieren Sie zu der von Ihnen erstellten API Management-Instanz.

  12. Wählen Sie im linken Menü die Option APIs aus.

  13. Wählen Sie die API aus, die Sie in den vorangegangenen Schritten erstellt haben. Diese wurde nun aufgefüllt, und Sie können sie untersuchen.

Konfigurieren des veröffentlichten API-Namens

Beachten Sie, dass der Name der API WeatherAPI lautet. Wir möchten sie jedoch Weather Forecasts nennen. Befolgen Sie die nachfolgenden Schritte, um den Namen zu aktualisieren:

  1. Fügen Sie in Program.cs direkt nach servies.AddSwaggerGen(); Folgendes ein:

    builder.Services.ConfigureSwaggerGen(setup =>
    {
        setup.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
        {
            Title = "Weather Forecasts",
            Version = "v1"
        });
    });
    
  2. Führen Sie die Veröffentlichung der ASP.NET Core-Web-API noch mal durch, und öffnen Sie die Azure API Management-Instanz im Azure-Portal.

  3. Aktualisieren Sie die Seite im Browser. Daraufhin sollte der richtige Name der API angezeigt werden.

Überprüfen der Funktionsweise der Web-API

Sie können die in Azure API Management bereitgestellte ASP.NET Core-Web-API anhand der folgenden Schritte über das Azure-Portal testen:

  1. Öffnen Sie die Registerkarte Testen.
  2. Klicken Sie auf / oder den Get-Vorgang.
  3. Wählen Sie Send (Senden) aus.

Bereinigung

Sobald Sie das Testen der App abgeschlossen haben, können Sie zum Azure-Portal wechseln und die App löschen.

  1. Wählen Sie Ressourcengruppen aus, und wählen Sie dann die Ressourcengruppe aus, die Sie erstellt haben.

  2. Wählen Sie auf der Seite RessourcengruppenLöschen aus.

  3. Geben Sie den Namen der Ressourcengruppe ein, und klicken Sie auf Löschen. Ihre App und alle anderen in diesem Tutorial erstellten Ressourcen werden nun aus Azure gelöscht.

Zusätzliche Ressourcen