Freigeben über


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

Von Matt Soucoup

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

Einrichten

Um das Lernprogramm abzuschließen, benötigen Sie ein Azure-Konto.

Erstellen einer ASP.NET Core-Web-API

Mit Visual Studio können Sie ganz einfach ein neues ASP.NET Core-Web-API-Projekt aus einer Vorlage erstellen. Führen Sie die folgenden Anweisungen aus, 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 minimaler APIs deaktivieren) aktiviert ist.
  • Vergewissern Sie sich, dass das Kontrollkästchen OpenAPI-Unterstützung aktivieren aktiviert ist.
  • Klicken Sie auf Erstellen.

Den Code erkunden

Swagger-Definitionen ermöglichen 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 Program.cs Datei, die den folgenden Code anzeigt:


...

builder.Services.AddSwaggerGen();

...

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

...

Sicherstellen, dass die Swagger-Definitionen immer generiert werden

Azure API Management benötigt die Swagger-Definitionen, um unabhängig von der Umgebung der Anwendung immer vorhanden zu sein. Um sicherzustellen, dass sie immer 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 Klassenattribut von [Route("[controller]")] 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-Verwaltungsdienstinstanz.

Veröffentlichen der 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 wählen Sie die Schaltfläche Weiter aus.

  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-Verwaltungsdienst 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-Verwaltungsdienst 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 dauern.

  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. Ein neues Browserfenster wird angezeigt und zeigt die API an, 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 api-Verwaltungsinstanz, die Sie erstellt haben.

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

  13. Wählen Sie die API aus, die Sie in den vorherigen Schritten erstellt haben. Es ist jetzt belebt, und Sie können sich umsehen.

Konfigurieren des veröffentlichten API-Namens

Beachten Sie, dass die API WeatherAPIheißt. Wir möchten diese jedoch Wettervorhersagennennen. Führen Sie die folgenden Schritte aus, um den Namen zu aktualisieren:

  1. Fügen Sie folgendes zu Program.cs unmittelbar nach services.AddSwaggerGen();

    builder.Services.ConfigureSwaggerGen(setup =>
    {
        setup.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
        {
            Title = "Weather Forecasts",
            Version = "v1"
        });
    });
    
  2. Veröffentlichen Sie die ASP.NET Core-Web-API erneut, und öffnen Sie die Azure API-Verwaltungsinstanz im Azure-Portal.

  3. Aktualisieren Sie die Seite in Ihrem Browser. Sie werden sehen, dass der Name der API jetzt korrekt ist.

Überprüfen, ob die Web-API funktioniert

Sie können die bereitgestellte ASP.NET Core Web-API in Azure API Management über das Azure-Portal mit den folgenden Schritten testen:

  1. Öffnen Sie die Registerkarte Testen.
  2. Klicken Sie auf / oder den Get-Vorgang.
  3. Wählen Sie , umzu senden.

Bereinigung

Wenn Sie mit dem Testen der App fertig sind, wechseln Sie zum Azure-Portal und löschen Sie die App.

  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 ressourcen, die in diesem Lernprogramm erstellt wurden, werden jetzt aus Azure gelöscht.

Weitere Ressourcen