Übung: Erstellen eines Web-API-Projekts

Die .NET Core-CLI ist die einfachste Möglichkeit zum Erstellen einer ASP.NET Core-Web-API. Die CLI ist in der Azure Cloud Shell-Umgebung, die in dieser Lerneinheit verwendet wird, vorinstalliert.

In dieser Lerneinheit verwenden Sie die .NET Core-CLI zum Erstellen einer Web-API innerhalb der Befehlsshell von Cloud Shell auf der rechten Seite. Sie erhalten außerdem einen Überblick über das resultierende Projekt.

Einrichten der Entwicklungsumgebung

Führen Sie den folgenden Befehl in der Befehlsshell aus:

. <(wget -q -O - https://aka.ms/build-web-api-net-core-setup)

Tipp

Sie können die Schaltfläche Kopieren verwenden, um Befehle in die Zwischenablage zu kopieren. Klicken Sie zum Einfügen im Cloud Shell-Fenster zunächst mit der rechten Maustaste auf eine neue Zeile, und wählen Sie dann Einfügen aus, oder verwenden Sie die Tastenkombination UMSCHALT+EINFG (⌘+V unter macOS).

Mit dem obigen Befehl wird eine bestimmte Version des .NET Core SDK in der Azure Cloud Shell-Umgebung installiert.

Erstellen eines Web-API-Projekts

Erstellen des Gerüsts und Durchsuchen eines Web-API-Projekts

  1. Führen Sie den folgenden .NET Core-CLI-Befehl in der Befehlsshell aus:

    dotnet new webapi -o aspnet-learn/src/ContosoPets.Api
    

    Der obige Befehl verwendet eine ASP.NET Core-Projektvorlage mit dem Alias webapi, um ein Gerüst für ein C#-basiertes Web-API-Startprojekt zu erstellen. Die Verzeichnisstruktur aspnet-learn/src/ContosoPets.Api wird erstellt, die ein ASP.NET Core-Projekt mit dem Ziel .NET Core enthält. Der Projektname stimmt mit dem Verzeichnisnamen ContosoPets.Api überein.

  2. Führen Sie den folgenden Befehl in der Befehlsshell aus:

    cd ./aspnet-learn/src/ContosoPets.Api
    

    Es wird zum neu erstellten Verzeichnis ContosoPets.Api gewechselt.

  3. Führen Sie den folgenden Befehl in der Befehlsshell aus:

    code .
    

    Das Projektverzeichnis ContosoPets.Api wird im Azure Cloud Shell-Editor geöffnet.

  4. Untersuchen Sie die folgenden Dateien und Verzeichnisse:

    Name Beschreibung
    Controllers/ Enthält Klassen mit öffentlichen Methoden, die als HTTP-Endpunkte zur Verfügung gestellt werden.
    Program.cs Enthält eine Main-Methode und den verwalteten Einstiegspunkt der App.
    ContosoPets.Api.csproj Enthält Konfigurationsmetadaten für das Projekt.
    Startup.cs Konfiguriert Dienste und die HTTP-Anforderungspipeline der App.

Erstellen und Testen

  1. Führen Sie den folgenden Befehl aus, um die App zu erstellen:

    dotnet build
    

    Der Buildvorgang sollte erfolgreich und ohne Warnungen abgeschlossen werden. Wenn beim Buildvorgang ein Fehler auftritt, suchen Sie in der Ausgabe nach Informationen zur Problembehandlung.

  2. Führen Sie den folgenden .NET Core-CLI-Befehl in der Befehlsshell aus:

    dotnet ./bin/Debug/netcoreapp3.1/ContosoPets.Api.dll \
        > ContosoPets.Api.log &
    

    Der vorherige Befehl:

    • Hostet die Web-API mithilfe des Kestrel-Webservers von ASP.NET Core.
    • Zeigt die Prozess-ID der Hintergrundaufgabe an.

    .NET Core gibt Protokollierungsinformationen aus und blockiert die Eingabe in der Befehlsshell. Die Befehlsshell muss verwendbar sein, damit die ausgeführte App getestet werden kann. Daher wird die Ausgabe dotnet run an die Textdatei ContosoPets.Api.log weitergeleitet. Darüber hinaus führt & die App als Hintergrundaufgabe aus, um die Blockierung der Eingabe in der Befehlsshell aufzuheben.

    Die Web-API wird sowohl unter http://localhost:5000 als auch unter https://localhost:5001 gehostet. In diesem Modul wird die sichere URL verwendet, die mit https beginnt.

    Wichtig

    Überprüfen Sie die ContosoPets.Api.log, wenn Sie auf unerwartetes Verhalten stoßen. Wenn der Buildvorgang fehlschlägt oder andere Fehler auftreten, kann der Inhalt der Protokolldatei bei der Problembehandlung helfen. Wenn Sie Änderungen am Code vornehmen, führen Sie kill $(pidof dotnet) aus, um alle .NET Core-Anwendungen zu beenden, bevor Sie die Ausführung erneut versuchen.

  3. Senden Sie eine HTTP-GET-Anforderung an die Web-API:

    curl -k -s https://localhost:5001/weatherforecast | jq
    

    Hinweis

    curl ist ein plattformübergreifendes Befehlszeilentool zum Testen von Web-APIs und anderen HTTP-Endpunkten.

    Der obige Befehl verwendet:

    • HTTPS zum Senden einer Anforderung an die Web-API, die auf Port 5001 von localhost ausgeführt wird. Die parameterlose Aktionsmethode Get der Klasse WeatherForecastController verarbeitet die Anforderung.
    • Die Option -k, um anzugeben, dass curl unsichere Serververbindungen bei Verwendung von HTTPS zulassen soll. Das .NET Core SDK enthält ein HTTPS-Entwicklungszertifikat für Tests. Mit diesem Zertifikat lehnt curl sichere Verbindungen standardmäßig ab.
    • Die Option -s, um die gesamte Ausgabe mit Ausnahme der JSON-Nutzlast zu unterdrücken. Der JSON-Code wird an den JSON-Befehlszeilenprozessor jq gesendet, um die Anzeige zu verbessern.

    Im Folgenden wird ein Auszug aus dem JSON-Code dargestellt, der zurückgegeben wird:

    [
      {
        "date": "2020-05-19T21:18:21.0596135+00:00",
        "temperatureC": 18,
        "temperatureF": 64,
        "summary": "Bracing"
      },
      {
        "date": "2020-05-20T21:18:21.0599683+00:00",
        "temperatureC": 27,
        "temperatureF": 80,
        "summary": "Hot"
      },
      // ...
    ]
    
  4. Beenden Sie alle Prozesse, die von der .NET Core-App generiert wurden:

    kill $(pidof dotnet)
    

Nachdem die Web-API erstellt wurde, können Sie sie jetzt den Anforderungen des Händlers entsprechend anpassen.