Cvičení – vytvoření projektu webového rozhraní API

Dokončeno

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.

  1. V nástroji Visual Studio Code vyberte File (Soubor)>Open Folder (Otevřít složku).

  2. 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.

  3. Ve Visual Studio Code otevřete integrovaný terminál výběrem View (Zobrazit) >Terminal (Terminál) z hlavní nabídky.

  4. V okně terminálu zkopírujte a vložte následující příkaz:

    dotnet new webapi -controllers -f net8.0
    

    Tento 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 ASP.NET základní vývojový certifikát 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.cs
    
  5. Prozkoumejte 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

  1. V příkazovém prostředí spusťte následující příkaz .NET Core CLI:

    dotnet run
    

    Př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 souboru launchSettings.json projektu. Tento modul používá zabezpečenou localhost adresu 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: Development        
    

    Pokud 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 run příkaz.

  2. Otevřete webový prohlížeč a přejděte na:

    https://localhost:{PORT}/weatherforecast
    

    Mě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.

  1. 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.

  2. 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

  1. 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-httprepl
    

    Př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.

  2. 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 HttpRepl spustit následující příkaz:

    connect https://localhost:{PORT}
    

    Tip

    Pokud nástroj HttpRepl upozorní, že nelze najít popis OpenAPI, nejpravděpodobnější příčinou je nedůvěryhodný vývojový certifikát. HttpRepl vyžaduje důvěryhodné připojení. Než budete moct pokračovat, musíte nakonfigurovat systém tak, aby důvěřoval vývojovému certifikátu.dotnet dev-certs https --trust

  3. Prozkoumejte dostupné koncové body spuštěním následujícího příkazu:

    ls
    

    Př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] 
    
  4. Spuštěním následujícího příkazu přejděte ke koncovému WeatherForecast bodu:

    cd WeatherForecast
    

    Předchozí příkaz zobrazí výstup dostupných rozhraní API pro WeatherForecast koncový bod:

    https://localhost:{PORT}/> cd WeatherForecast
    /WeatherForecast    [GET]
    
  5. GET Pomocí následujícího příkazu vytvořte požadavekHttpRepl:

    get
    

    Předchozí příkaz vytvoří GET pož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"
        },
        // ..
    ]
    
  6. Aktuální relaci ukončete HttpRepl pomocí následujícího příkazu:

    exit
    
  7. Vraťte se do terminálu v rozevíracím seznamu v editoru dotnet Visual 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.