Harjoitus – Luo WWW-ohjelmointirajapintaprojekti
Tässä moduulissa käytetään .NET 8.0 SDK:ta. Varmista, että .NET 8.0 on asennettu suorittamalla seuraava komento ensisijaisessa komentopäätteessä:
dotnet --list-sdks
Seuraavan esimerkin kaltainen tuloste tulee näkyviin:
6.0.317 [C:\Program Files\dotnet\sdk]
7.0.401 [C:\Program Files\dotnet\sdk]
8.0.100 [C:\Program Files\dotnet\sdk]
Varmista, että luettelossa on versio, jonka alussa on 8. Jos mitään ei ole luettelossa tai komentoa ei löydy, asentaa uusimman .NET 8.0 SDK -.
Verkon ohjelmointirajapintaprojektin luominen ja siihen tutustuminen
Jos haluat määrittää .NET-projektin toimimaan verkon ohjelmointirajapinnan kanssa, käytämme Visual Studio Codea. Visual Studio Code sisältää integroidun päätteen, joka tekee uuden projektin luomisesta helppoa. Jos et halua käyttää koodieditoria, voit suorittaa tämän moduulin komennot päätteessä.
Valitse Visual Studio Codessa Tiedosto>Avaa kansio -.
Luo valitsemaasi sijaintiin uusi kansio nimeltä ContosoPizza ja valitse sitten Valitse kansio.
Avaa integroitu pääte Visual Studio Codesta valitsemalla päävalikosta Näytä>Terminal.
Kopioi ja liitä seuraava komento pääteikkunaan:
dotnet new webapi -controllers -f net8.0Tämä komento luo rekisterinpitäjiä käyttävän VERKKO-ohjelmointirajapintaprojektin tiedostot sekä C#-projektitiedoston nimeltä ContosoPizza.csproj, joka palauttaa sääennusteiden luettelon. Jos saat virheilmoituksen, varmista, että sinulla on asennettuna .NET 8 SDK.
Tärkeä
WWW-ohjelmointirajapintaprojektit suojataan oletusarvoisesti
https. Jos sinulla on ongelmia, määrittää https-ydinkehitysvarmenteen ASP.NET -.Saatat saada Visual Studio Codesta kehotteen lisätä resursseja projektin virheenkorjaukseksi. Valitse valintaikkunassa Kyllä.
Komento käyttää ASP.NET Core -projektimallia, jonka aliaksena on webapi C#-pohjaisen verkko-ohjelmointirajapintaprojektin luomiseen. Luodaan ContosoPizza hakemisto. Tämä hakemisto sisältää ASP.NET Core -projektin, joka on käynnissä .NET:ssä. Projektin nimi vastaa ContosoPizza hakemiston nimeä.
Sinulla pitäisi nyt olla käyttöoikeus seuraaviin tiedostoihin ja hakemistoihin:
-| Controllers -| obj -| Properties -| appsettings.Development.json -| appsettings.json -| ContosoPizza.csproj -| ContosoPizza.http -| Program.cs -| WeatherForecast.csTutki seuraavia tiedostoja ja hakemistoja:
Nimi Kuvaus Controllers/ Sisältää luokkia, joiden julkiset menetelmät on paljastettu HTTP-päätepisteiksi. Program.cs Määrittää palvelut ja sovelluksen HTTP-pyyntöputken ja sisältää sovelluksen hallitun aloituskohdan. ContosoPizza.csproj Sisältää projektin määritysten metatiedot. ContosoPizza.http Sisältää määrityksen REST-ohjelmointirajapintojen testaamiseksi suoraan Visual Studio Codesta.
Www-ohjelmointirajapinnan luominen ja testaaminen
Suorita seuraava .NET Core CLI -komento komentoliittymässä:
dotnet runEdellinen komento:
- Etsii projektitiedoston nykyisestä hakemistosta.
- Noutaa ja asentaa tämän projektin pakolliset projektiriippuvuudet.
- Kääntää projektikoodin.
- Isännöi www-ohjelmointirajapintaa ASP.NET Kestrel-ydinverkkopalvelimella sekä HTTP- että HTTPS-päätepisteessä.
HTTP:lle valitaan portti 5000–5300 ja HTTPS:n portti 7000:sta 7300:aan, kun projekti luodaan. Voit helposti muuttaa kehityksen aikana käytettäviä portteja muokkaamalla projektin launchSettings.json tiedostoa. Tässä moduulissa käytetään url-osoitteen suojattua
localhost, joka alkaahttps.Sinun pitäisi saada seuraavanlainen tuloste, joka ilmaisee, että sovelluksesi on käynnissä:
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: DevelopmentJos käytät sovellusta omalla koneellasi, voit tarkastella tuloksena saatavaa sivua ohjaamalla selaimen tuloksessa näkyvään HTTPS-linkkiin (edellisessä tapauksessa
https://localhost:7294). Muista tämä portti, koska käytät sitä kaikkialla moduulissa, jossa{PORT}käytetään.Tärkeä
Tarkista päätteen tulos, jos kohtaat odottamatonta toimintaa. Jos koontiversio epäonnistuu tai jos muita virheitä ilmenee, lokitiedoston tietojen vianmääritys on sinulle apua. Kun teet muutoksia koodiin, verkko-ohjelmointirajapinta on pysäytettävä valitsemalla näppäimistöllä CTRL + C ja suorittamalla
dotnet runkomento uudelleen.Avaa selain ja siirry osoitteeseen:
https://localhost:{PORT}/weatherforecastTämän esimerkin kaltaisen JSON-tuloksen pitäisi näkyä:
[ { "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" }, // ... ]
Valinnainen: Tutki .http tiedostojen avulla
Projektiin sisältyy ContosoPizza.http, tiedosto, jota käytetään ohjelmointirajapinnan päätepisteiden testaamiseen vakiomuodossa.
.http -tiedostoja tuetaan useissa integroiduissa kehitysympäristöissä, kuten Visual Studiossa ja Visual Studio Codessa, johon on asennettu REST Client -laajennus.
Avaa ContosoPizza.http-tiedosto.
Joissain ide-tiedostoissa tämä tiedosto on esimääritetty @ContosoPizza_HostAddress muuttujilla ja GET -komennolla, joka kutsuu /weatherforecast/, joka hyväksyy application/json.
Jos se on tiedostossasi, valitse Sent Request -komento, joka on GET- yläpuolella, joka lähettää pyynnön käynnissä olevaan palveluun.
Tämän komennon kutsuminen avaa vastausikkunan, jonka tuloste on samanlainen kuin selaimessa:
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" }, // .. ]
Valinnainen: Tutustu ohjelmointirajapintoihin komentorivin HTTP REPL -komennolla
Avaa uusi integroitu päätteen Visual Studio Codesta valitsemalla päävalikosta Terminal>New Terminal ja suorittamalla sitten seuraava komento:
dotnet tool install -g Microsoft.dotnet-httpreplEdellinen komento asentaa .NET HTTP Read-Eval-Print Loop (REPL) -komentorivityökalun, jota käytät HTTP-pyyntöjen tekemiseen www-ohjelmointirajapintaan.
Muodosta yhteys WWW-ohjelmointirajapintaan suorittamalla seuraava komento:
httprepl https://localhost:{PORT}Vaihtoehtoisesti voit suorittaa seuraavan komennon milloin tahansa
HttpReplsuoritettaessa:connect https://localhost:{PORT}Juomaraha
Jos
HttpRepl-työkalu varoittaa OpenAPI-kuvausta ei löydy, todennäköisin syy on ei-luotettu kehitysvarmenne.HttpRepledellyttää luotettua yhteyttä. Ennen kuin voit jatkaa, sinun täytyymäärittää järjestelmäsi luottamaan kehitysvarmenteeseendotnet dev-certs https --trustTutustu käytettävissä oleviin päätepisteisiin suorittamalla seuraava komento:
lsEdellinen komento tunnistaa kaikki yhdistetyssä päätepisteessä käytettävissä olevat ohjelmointirajapinnat ja luettelee ne seuraavassa tulosteessa esitetyllä tavalla:
https://localhost:{PORT}/> ls . [] WeatherForecast [GET]Siirry
WeatherForecastpäätepisteeseen suorittamalla seuraava komento:cd WeatherForecastEdellä oleva komento näyttää käytettävissä olevien ohjelmointirajapintojen tuloksen
WeatherForecastpäätepisteelle:https://localhost:{PORT}/> cd WeatherForecast /WeatherForecast [GET]Tee
GET-pyyntöHttpReplkäyttämällä seuraavaa komentoa:getEdellä oleva komento tekee
GETpyynnön, joka muistuttaa selaimen päätepisteeseen menemista: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" }, // .. ]Lopeta nykyinen
HttpRepl-istunto käyttämällä seuraavaa komentoa:exitPalaa
dotnet-päätteeseen Visual Studio Coden avattavassa luettelossa. Sammuta www-ohjelmointirajapinta valitsemalla näppäimistöltä CTRL + C.
Nyt kun olet luonut www-ohjelmointirajapinnan, voimme muokata sitä pizzaverkko-ohjelmointirajapinnan tarpeiden mukaan.