Gyakorlat – Webes API-projekt létrehozása

Befejeződött

Ez a modul a .NET 8.0 SDK-t használja. Győződjön meg arról, hogy telepítve van a .NET 8.0, ha az alábbi parancsot futtatja az előnyben részesített parancsterminálban:

dotnet --list-sdks

A következő példához hasonló kimenet jelenik meg:

6.0.317 [C:\Program Files\dotnet\sdk]
7.0.401 [C:\Program Files\dotnet\sdk]
8.0.100 [C:\Program Files\dotnet\sdk]

Győződjön meg arról, hogy az első 8 verzió szerepel a listában. Ha egyik sem szerepel a listában, vagy a parancs nem található, telepítse a legújabb .NET 8.0 SDK-t.

Webes API-projekt létrehozása és felfedezése

Ha .NET-projektet szeretne beállítani a webes API használatára, a Visual Studio Code-ot használjuk. A Visual Studio Code tartalmaz egy integrált terminált, amely megkönnyíti egy új projekt létrehozását. Ha nem szeretne kódszerkesztőt használni, futtathatja a parancsokat ebben a modulban egy terminálban.

  1. A Visual Studio Code-ban válassza a Fájl>Mappa megnyitása elemet.

  2. Hozzon létre egy contosoPizza nevű új mappát a kívánt helyen, majd válassza a Mappa kiválasztása lehetőséget.

  3. Nyissa meg az integrált terminált a Visual Studio Code-ból a Nézet>Terminál elemet választva a főmenüből.

  4. Másolja és illessze be a következő parancsot a terminálablakba:

    dotnet new webapi -controllers -f net8.0
    

    Ez a parancs létrehoz egy vezérlőket használó alapszintű webes API-projekt fájljait, valamint egy ContosoPizza.csproj nevű C#-projektfájlt, amely az időjárás-előrejelzések listáját adja vissza. Ha hibaüzenetet kap, győződjön meg arról, hogy telepítve van a .NET 8 SDK .

    Fontos

    A webes API-projektek alapértelmezés szerint védettek https . Ha problémákat tapasztal, konfigurálja a ASP.NET Core HTTPS fejlesztési tanúsítványt.

    Előfordulhat, hogy a Visual Studio Code kéri, hogy adjon hozzá eszközöket a projekt hibakereséséhez. Válassza az Igen lehetőséget a párbeszédpanelen.

    A parancs egy C#-alapú webes API-projekt létrehozásához használt webapi ASP.NET Core-projektsablont használ. Létrejön egy ContosoPizza könyvtár. Ez a könyvtár egy .NET-en futó ASP.NET Core-projektet tartalmaz. A projekt neve megegyezik a ContosoPizza könyvtáréval.

    Most már hozzá kell férnie ezekhez a fájlokhoz és könyvtárakhoz:

    -| Controllers
    -| obj
    -| Properties
    -| appsettings.Development.json
    -| appsettings.json
    -| ContosoPizza.csproj
    -| ContosoPizza.http
    -| Program.cs
    -| WeatherForecast.cs
    
  5. Figyelje meg a következő fájlokat és könyvtárakat:

    Név Leírás
    Controllers/ HTTP-végpontokként elérhető nyilvános metódusokkal rendelkező osztályokat tartalmaz.
    Program.cs Konfigurálja a szolgáltatásokat és az alkalmazás HTTP-kérési folyamatát, és tartalmazza az alkalmazás felügyelt belépési pontját.
    ContosoPizza.csproj A projekt konfigurációs metaadatait tartalmazza.
    ContosoPizza.http A REST API-k közvetlenül a Visual Studio Code-ból való tesztelésére alkalmas konfigurációt tartalmaz.

A webes API létrehozása és tesztelése

  1. Futtassa a következő .NET Core CLI-parancsot a parancsfelületen:

    dotnet run
    

    A fenti parancs a következőket hajtja végre:

    • Megkeresi a projektfájlt az aktuális könyvtárban.
    • Lekéri és telepíti a projekt szükséges projektfüggőségeit.
    • Lefordítja a projektkódot.
    • A webes API-t a ASP.NET Core Kestrel webkiszolgálóval üzemelteti HTTP- és HTTPS-végponton egyaránt.

    A HTTP-hez 5000 és 5300 közötti port, HTTPS esetén pedig 7000 és 7300 közötti port van kiválasztva a projekt létrehozásakor. A fejlesztés során használt portokat egyszerűen módosíthatja a projekt launchSettings.json fájljának szerkesztésével. Ez a modul a következővel localhostkezdődő biztonságos https URL-címet használja: .

    Az alábbihoz hasonló kimenetet kell kapnia, amely azt jelzi, hogy az alkalmazás fut:

    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        
    

    Ha ezt az alkalmazást a saját gépén futtatja, a kimenetben (az előző esetben https://localhost:7294) megjelenő HTTPS-hivatkozásra irányíthatja a böngészőt az eredményként kapott oldal megtekintéséhez. Ne feledje ezt a portot, mert azt a modulban használja, ahol {PORT} használják.

    Fontos

    Ellenőrizze a terminál kimenetét, ha váratlan viselkedést tapasztal. Ha a build sikertelen vagy más hibák lépnek fel, a naplófájl adatai segítenek a hibaelhárításban. A kód módosításakor le kell állítania a webes API-t a CTRL+C billentyűkombinációval a billentyűzeten, majd újra kell futtatnia a dotnet run parancsot.

  2. Nyisson meg egy webböngészőt, és lépjen a következőre:

    https://localhost:{PORT}/weatherforecast
    

    Az alábbi példához hasonló JSON-kimenetnek kell megjelennie:

    [
        {
        "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"
        },
        // ...
    ]
    

Nem kötelező: Felfedezés fájlokkal .http

A projekt része a ContosoPizza.http fájl, amely az API-végpontok szabványos formátumon keresztüli tesztelésére szolgál. .http a fájlok számos integrált fejlesztési környezetben (IDE-ban) támogatottak, beleértve a Visual Studiót és a Visual Studio Code-ban a REST-ügyfélbővítményt.

  1. Nyissa meg a ContosoPizza.http fájlt.

    Egyes azonosítókban ez a fájl előre konfigurálva van a @ContosoPizza_HostAddress változókkal és egy get parancstal, amely meghívja a /weatherforecast/ parancsot, amely elfogadja az alkalmazást/json-t.

  2. Ha megtalálható a fájlban, válassza az Elküldött kérés parancsot a GET fölött, amely kérést küld a futó szolgáltatásnak.

    A parancs meghívása egy válaszablakot nyit meg a böngészőben látotthoz hasonló kimenettel:

    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"
        },
        // ..
    ]
    

Nem kötelező: API-k felfedezése a HTTP REPL parancssorral

  1. Nyisson meg egy új integrált terminált a Visual Studio Code-ból a terminála főmenüben, majd futtassa a következő parancsot:

    dotnet tool install -g Microsoft.dotnet-httprepl
    

    Az előző parancs telepíti a .NET HTTP Read-Eval-Print Loop (REPL) parancssori eszközt, amellyel HTTP-kéréseket küld a webes API-nak.

  2. Csatlakozzon a webes API-hoz a következő parancs futtatásával:

    httprepl https://localhost:{PORT}
    

    Másik lehetőségként futtassa a következő parancsot bármikor, miközben HttpRepl fut:

    connect https://localhost:{PORT}
    

    Tipp.

    Ha az HttpRepl eszköz figyelmezteti , hogy nem található OpenAPI-leírás, a legvalószínűbb ok egy nem megbízható fejlesztési tanúsítvány. HttpRepl megbízható kapcsolatot igényel. A folytatáshoz konfigurálnia kella rendszert, hogy megbízzanak a fejlesztői tanúsítványbandotnet dev-certs https --trust

  3. Az alábbi parancs futtatásával fedezze fel az elérhető végpontokat:

    ls
    

    Az előző parancs észleli a csatlakoztatott végponton elérhető összes API-t, és felsorolja őket, ahogyan az alábbi kimenetben látható:

    https://localhost:{PORT}/> ls
    .                 []
    WeatherForecast   [GET] 
    
  4. Lépjen a WeatherForecast végpontra a következő parancs futtatásával:

    cd WeatherForecast
    

    Az előző parancs a végponthoz elérhető API-k kimenetét jeleníti meg WeatherForecast :

    https://localhost:{PORT}/> cd WeatherForecast
    /WeatherForecast    [GET]
    
  5. Küldjön GET be egy kérést HttpRepl a következő paranccsal:

    get
    

    Az előző parancs a böngészőben a végponthoz hasonló kérést GET küld:

    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. Az alábbi paranccsal fejezheti be az aktuális HttpRepl munkamenetet:

    exit
    
  7. Térjen vissza a dotnet terminálhoz a Visual Studio Code legördülő listájában. Állítsa le a webes API-t a CTRL+C billentyűkombinációval a billentyűzeten.

Most, hogy létrehozta a webes API-t, módosíthatjuk a pizza webes API igényeinek megfelelően.