Övning – Skapa ett webb-API-projekt
Den här modulen använder .NET 8.0 SDK. Kontrollera att du har .NET 8.0 installerat genom att köra följande kommando i önskad kommandoterminal:
dotnet --list-sdks
Utdata som liknar följande exempel visas:
6.0.317 [C:\Program Files\dotnet\sdk]
7.0.401 [C:\Program Files\dotnet\sdk]
8.0.100 [C:\Program Files\dotnet\sdk]
Kontrollera att en version som börjar med 8
visas. Om inget visas eller om kommandot inte hittas installerar du den senaste .NET 8.0 SDK:t.
Skapa och utforska ett webb-API-projekt
För att konfigurera ett .NET-projekt för att arbeta med webb-API:et använder vi Visual Studio Code. Visual Studio Code innehåller en integrerad terminal som gör det enkelt att skapa ett nytt projekt. Om du inte vill använda en kodredigerare kan du köra kommandona i den här modulen i en terminal.
I Visual Studio Code väljer du File>Open Folder (Arkiv > Öppna mapp).
Skapa en ny mapp med namnet ContosoPizza på valfri plats och välj sedan Välj mapp.
Öppna den integrerade terminalen från Visual Studio Code genom att välja Visa>Terminal på huvudmenyn.
Kopiera och klistra in följande kommando i terminalfönstret:
dotnet new webapi -controllers -f net8.0
Det här kommandot skapar filerna för ett grundläggande webb-API-projekt som använder kontrollanter, tillsammans med en C#-projektfil med namnet ContosoPizza.csproj som returnerar en lista över väderprognoser. Om du får ett fel kontrollerar du att .NET 8 SDK är installerat.
Viktigt!
Webb-API-projekt skyddas med
https
som standard. Om du har problem konfigurerar du ASP.NET Core HTTPS-utvecklingscertifikat.Du kan få en uppmaning från Visual Studio Code om att lägga till tillgångar för att felsöka projektet. Välj Ja i dialogrutan.
Kommandot använder en ASP.NET Core-projektmall som alias webapi för att skapa ett C#-baserat webb-API-projekt. En ContosoPizza katalog skapas. Den här katalogen innehåller ett ASP.NET Core-projekt som körs på .NET. Projektnamnet matchar katalognamnet ContosoPizza.
Nu bör du ha åtkomst till dessa filer och kataloger:
-| Controllers -| obj -| Properties -| appsettings.Development.json -| appsettings.json -| ContosoPizza.csproj -| ContosoPizza.http -| Program.cs -| WeatherForecast.cs
Granska följande filer och kataloger:
Name beskrivning Controllers/ Innehåller klasser med offentliga metoder som exponeras som HTTP-slutpunkter. Program.cs Konfigurerar tjänster och appens HTTP-begärandepipeline och innehåller appens hanterade startpunkt. ContosoPizza.csproj Innehåller konfigurationsmetadata för projektet. ContosoPizza.http Innehåller konfiguration för att testa REST-API:er direkt från Visual Studio Code.
Skapa och testa webb-API:et
Kör följande .NET Core CLI-kommando i kommandogränssnittet:
dotnet run
Kommandot ovan:
- Letar upp projektfilen i den aktuella katalogen.
- Hämtar och installerar alla nödvändiga projektberoenden för det här projektet.
- Kompilerar projektkoden.
- Är värd för webb-API:et med webbservern ASP.NET Core Kestrel på både en HTTP- och HTTPS-slutpunkt.
En port från 5000 till 5300 har valts för HTTP och från 7 000 till 7 300 för HTTPS när projektet skapas. Du kan enkelt ändra de portar som du använder under utvecklingen genom att redigera projektets launchSettings.json fil. Den här modulen använder den säkra
localhost
URL:en som börjar medhttps
.Du bör få utdata som liknar följande, vilket anger att appen körs:
Building... info: Microsoft.Hosting.Lifetime[14] Now listening on: https://localhost:7294 info: Microsoft.Hosting.Lifetime[14] Now listening on: http://localhost:5118 info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down. info: Microsoft.Hosting.Lifetime[0] Hosting environment: Development
Om du kör den här appen på din egen dator kan du dirigera en webbläsare till HTTPS-länken som visas i utdata (i föregående fall
https://localhost:7294
) för att visa den resulterande sidan. Kom ihåg den här porten eftersom du använder den i hela modulen där{PORT}
används.Viktigt!
Kontrollera terminalutdata om du stöter på något oväntat beteende. Om bygget misslyckas eller om andra fel inträffar hjälper loggfilens information dig att felsöka. När du gör ändringar i koden måste du stoppa webb-API:et genom att välja CTRL+C på tangentbordet och köra kommandot igen
dotnet run
.Öppna en webbläsare och gå till:
https://localhost:{PORT}/weatherforecast
Du bör se JSON-utdata som liknar det här exemplet:
[ { "date": "2021-11-09T20:36:01.4678814+00:00", "temperatureC": 33, "temperatureF": 91, "summary": "Scorching" }, { "date": "2021-11-09T20:36:01.4682337+00:00", "temperatureC": -8, "temperatureF": 18, "summary": "Cool" }, // ... ]
Valfritt: Utforska med .http
filer
ContosoPizza.http ingår i projektet, en fil som används för att testa API-slutpunkter via ett standardformat. .http
filer stöds i flera integrerade utvecklingsmiljöer (IDE:er), inklusive Visual Studio och inuti Visual Studio Code med REST-klienttillägget installerat.
Öppna filen ContosoPizza.http.
I vissa IDE:er är den här filen förkonfigurerad med @ContosoPizza_HostAddress variabler och ett GET-kommando som anropar /weatherforecast/ som accepterar application/json.
Om den finns i filen väljer du kommandot Skickad begäran ovanför GET som skickar en begäran till den tjänst som körs.
När du anropar det här kommandot öppnas ett svarsfönster med utdata som liknar det vi såg i webbläsaren:
HTTP/1.1 200 OK Connection: close Content-Type: application/json; charset=utf-8 Date: Wed, 17 Jan 2024 16:46:40 GMT Server: Kestrel Transfer-Encoding: chunked [ { "date": "2024-01-18", "temperatureC": -2, "temperatureF": 29, "summary": "Warm" }, { "date": "2024-01-19", "temperatureC": 24, "temperatureF": 75, "summary": "Chilly" }, // .. ]
Valfritt: Utforska API:er med KOMMANDORAD HTTP REPL
Öppna en ny integrerad terminal från Visual Studio Code genom att välja Terminal>Ny terminal på huvudmenyn och kör sedan följande kommando:
dotnet tool install -g Microsoft.dotnet-httprepl
Föregående kommando installerar kommandoradsverktyget .NET HTTP Read-Eval-Print Loop (REPL) som du använder för att göra HTTP-begäranden till webb-API:et.
Anslut till webb-API:et genom att köra följande kommando:
httprepl https://localhost:{PORT}
Du kan också köra följande kommando när som helst medan
HttpRepl
det körs:connect https://localhost:{PORT}
Dricks
Om verktyget
HttpRepl
varnar Det går inte att hitta en OpenAPI-beskrivning är den troligaste orsaken ett ej betrott utvecklingscertifikat.HttpRepl
kräver en betrodd anslutning. Innan du kan fortsätta måste du konfigurera systemet att lita på utvecklingscertifikatet meddotnet dev-certs https --trust
Utforska tillgängliga slutpunkter genom att köra följande kommando:
ls
Föregående kommando identifierar alla API:er som är tillgängliga på den anslutna slutpunkten och visar dem, som i följande utdata:
https://localhost:{PORT}/> ls . [] WeatherForecast [GET]
Gå till slutpunkten genom att
WeatherForecast
köra följande kommando:cd WeatherForecast
Föregående kommando visar utdata från tillgängliga API:er för
WeatherForecast
slutpunkten:https://localhost:{PORT}/> cd WeatherForecast /WeatherForecast [GET]
Gör en
GET
begäran medHttpRepl
hjälp av följande kommando:get
Föregående kommando gör en
GET
begäran som liknar att gå till slutpunkten i webbläsaren:HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Date: Fri, 02 Apr 2021 17:31:43 GMT Server: Kestrel Transfer-Encoding: chunked [ { "date": 4/3/2021 10:31:44 AM, "temperatureC": 13, "temperatureF": 55, "summary": "Sweltering" }, { "date": 4/4/2021 10:31:44 AM, "temperatureC": -13, "temperatureF": 9, "summary": "Warm" }, // .. ]
Avsluta den aktuella
HttpRepl
sessionen med hjälp av följande kommando:exit
Gå tillbaka till terminalen
dotnet
i listrutan i Visual Studio Code. Stäng av webb-API:et genom att välja CTRL+C på tangentbordet.
Nu när du har skapat webb-API:et kan vi ändra det så att det uppfyller behoven i pizzawebb-API:et.