Cvičení – vytvoření projektu webového rozhraní API
Tento modul používá sadu .NET 8.0 SDK. Spuštěním následujícího příkazu v upřednostňovaném příkazovém terminálu se ujistěte, že máte nainstalované rozhraní .NET 8.0:
dotnet --list-sdks
Zobrazí se výstup podobný následujícímu příkladu:
6.0.317 [C:\Program Files\dotnet\sdk]
7.0.401 [C:\Program Files\dotnet\sdk]
8.0.100 [C:\Program Files\dotnet\sdk]
Ujistěte se, že je uvedená verze, na 8 které začíná. Pokud žádný není uvedený nebo příkaz nebyl nalezen, nainstalujte nejnovější sadu .NET 8.0 SDK.
Vytvoření a prozkoumání projektu webového rozhraní API
K nastavení projektu .NET pro práci s webovým rozhraním API používáme Visual Studio Code. Visual Studio Code obsahuje integrovaný terminál, který usnadňuje vytváření nového projektu. Pokud nechcete používat editor kódu, můžete příkazy v tomto modulu spustit v terminálu.
V editoru Visual Studio Code vyberteSložku Otevřít soubor>.
Vytvořte novou složku s názvem ContosoPizza v umístění podle vašeho výběru a pak zvolte Vybrat složku.
V editoru Visual Studio Code otevřete integrovaný terminál výběrem možnosti Zobrazit>terminál z hlavní nabídky.
V okně terminálu zkopírujte a vložte následující příkaz:
dotnet new webapi -controllers -f net8.0Tento příkaz vytvoří soubory pro základní projekt webového rozhraní API, který používá kontrolery, spolu se souborem projektu C# s názvem ContosoPizza.csproj , který vrátí seznam předpovědí počasí. Pokud se zobrazí chyba, ujistěte se, že máte nainstalovanou sadu .NET 8 SDK .
Důležité
Projekty webového rozhraní API jsou ve výchozím nastavení zabezpečené
https. Pokud máte problémy, nakonfigurujte vývojový certifikát ASP.NET Core HTTPS.Z editoru Visual Studio Code se může zobrazit výzva k přidání prostředků pro ladění projektu. V dialogovém okně vyberte Ano .
Tento příkaz používá alias šablony projektu ASP.NET Core, který webapi slouží k vygenerování projektu webového rozhraní API založeného na jazyce C#. Vytvoří se ContosoPizza adresář. Tento adresář obsahuje projekt ASP.NET Core spuštěný v .NET. Název projektu odpovídá názvu adresáře ContosoPizza.
Teď byste měli mít přístup k těmto souborům a adresářům:
-| Controllers -| obj -| Properties -| appsettings.Development.json -| appsettings.json -| ContosoPizza.csproj -| ContosoPizza.http -| Program.cs -| WeatherForecast.csProzkoumejte následující soubory a adresáře:
Název Popis Controllers/ Obsahuje třídy s veřejnými metodami vystavenými jako koncové body HTTP. Program.cs Konfiguruje služby a kanál požadavku HTTP aplikace a obsahuje spravovaný vstupní bod aplikace. ContosoPizza.csproj Obsahuje konfigurační metadata projektu. ContosoPizza.http Obsahuje konfiguraci pro testování rozhraní REST API přímo ze sady Visual Studio Code.
Sestavení a testování webového rozhraní API
V příkazovém prostředí spusťte následující příkaz .NET Core CLI:
dotnet runPředchozí příkaz:
- Vyhledá soubor projektu v aktuálním adresáři.
- Načte a nainstaluje všechny požadované závislosti projektu pro tento projekt.
- Zkompiluje kód projektu.
- Hostuje webové rozhraní API s webovým serverem ASP.NET Core Kestrel na koncovém bodu HTTP i HTTPS.
Port z 5000 na 5300 je vybraný pro protokol HTTP a při vytvoření projektu je z 7000 na 7300 pro HTTPS. Porty, které používáte při vývoji, můžete snadno změnit úpravou souborulaunchSettings.json projektu. Tento modul používá zabezpečenou
localhostadresu URL, která začínáhttps.Měl by se zobrazit výstup podobný následujícímu, což znamená, že je vaše aplikace spuštěná:
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: DevelopmentPokud tuto aplikaci spouštíte na vlastním počítači, můžete prohlížeč nasměrovat na odkaz HTTPS zobrazený ve výstupu (v předchozím případě
https://localhost:7294) a zobrazit tak výslednou stránku. Tento port si zapamatujte, protože ho použijete v celém modulu, ve kterém{PORT}se používá.Důležité
Pokud narazíte na neočekávané chování, zkontrolujte výstup terminálu. Pokud sestavení selže nebo dojde k jiným chybám, informace o souboru protokolu vám pomůžou s řešením potíží. Při provádění změn kódu budete muset webové rozhraní API zastavit tak, že na klávesnici vyberete CTRL+C a znovu spustíte
dotnet runpříkaz.Otevřete webový prohlížeč a přejděte na:
https://localhost:{PORT}/weatherforecastMěl by se zobrazit výstup JSON podobný tomuto příkladu:
[ { "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" }, // ... ]
Volitelné: Prozkoumání souborů .http
Součástí projektu je ContosoPizza.http, soubor, který se používá k testování koncových bodů rozhraní API ve standardním formátu.
.http Soubory jsou podporovány v několika integrovaných vývojových prostředích (ID) včetně sady Visual Studio a uvnitř editoru Visual Studio Code s nainstalovaným rozšířením REST Client.
Otevřete soubor ContosoPizza.http.
V některých prostředích IDEs je tento soubor předem nakonfigurovaný s proměnnými @ContosoPizza_HostAddress a příkazem GET , který volá /weatherforecast/ , který přijímá application/json.
Pokud je v souboru, vyberte příkaz Sent Request nad get, který odešle požadavek do spuštěné služby.
Voláním tohoto příkazu se otevře okno odpovědi s výstupem podobným tomu, co jsme viděli v prohlížeči:
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" }, // .. ]
Volitelné: Prozkoumání rozhraní API pomocí HTTP REPL příkazového řádku
V editoru Visual Studio Code otevřete nový integrovaný terminál tak, že v hlavní nabídce vyberete Terminál>nový terminál a pak spustíte následující příkaz:
dotnet tool install -g Microsoft.dotnet-httpreplPředchozí příkaz nainstaluje nástroj příkazového řádku .NET HTTP Read-Eval-Print Loop (REPL), který použijete k provádění požadavků HTTP na webové rozhraní API.
Spuštěním následujícího příkazu se připojte k webovému rozhraní API:
httprepl https://localhost:{PORT}Případně můžete při spuštění kdykoli
HttpReplspustit následující příkaz:connect https://localhost:{PORT}Návod
Pokud nástroj
HttpReplupozorní, že nelze najít popis OpenAPI, nejpravděpodobnější příčinou je nedůvěryhodný vývojový certifikát.HttpReplvyžaduje důvěryhodné připojení. Než budete moct pokračovat, musítenakonfigurovat systém tak, aby důvěřoval vývojovému certifikátu .dotnet dev-certs https --trustProzkoumejte dostupné koncové body spuštěním následujícího příkazu:
lsPředchozí příkaz zjistí všechna rozhraní API dostupná v připojeném koncovém bodu a zobrazí je jako v následujícím výstupu:
https://localhost:{PORT}/> ls . [] WeatherForecast [GET]Spuštěním následujícího příkazu přejděte ke koncovému
WeatherForecastbodu:cd WeatherForecastPředchozí příkaz zobrazí výstup dostupných rozhraní API pro
WeatherForecastkoncový bod:https://localhost:{PORT}/> cd WeatherForecast /WeatherForecast [GET]GETPomocí následujícího příkazu vytvořte požadavekHttpRepl:getPředchozí příkaz vytvoří
GETpožadavek podobný koncovému bodu v prohlížeči: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" }, // .. ]Aktuální relaci ukončete
HttpReplpomocí následujícího příkazu:exitVraťte se do terminálu v rozevíracím seznamu v editoru
dotnetVisual Studio Code. Vypněte webové rozhraní API tak, že na klávesnici vyberete CTRL+C.
Teď, když jste vytvořili webové rozhraní API, můžeme ho upravit tak, aby vyhovoval potřebám webového rozhraní API pro pizzu.