Exercici: Creació d'un projecte d'API web
En aquest mòdul es fa servir l'SDK de .NET 6.0. Assegureu-vos que teniu instal·lat .NET 6.0 mitjançant l'execució de l'ordre següent a la terminal que preferiu:
dotnet --list-sdks
Veureu un resultat similar al següent:
3.1.100 [C:\program files\dotnet\sdk]
5.0.100 [C:\program files\dotnet\sdk]
6.0.100 [C:\program files\dotnet\sdk]
Assegureu-vos que aparegui una versió que comenci a 6. Si no apareix cap o no es troba l'ordre, instal·leu l'SDK més recent de .NET 6.0 .
Creació i exploració d´un projecte d´API web
Per configurar un projecte de .NET perquè funcioni amb API web s'usa Visual Studio Code. El Visual Studio Code inclou un terminal integrat que facilita la creació d'un projecte. Si no voleu utilitzar un editor de codi, podeu executar les ordres d'aquest mòdul en un terminal.
A Visual Studio Code, seleccioneu Fitxer > Obre carpeta .
Creeu una carpeta amb el nom ContosoPizza a la ubicació que preferiu i seleccioneu Seleccionar carpeta .
Obriu el terminal integrat des del Visual Studio Code; per fer-ho, seleccioneu Visualitza > Terminal al menú principal.
A la finestra del terminal, copieu i enganxeu la següent ordre:
CLI de .NETdotnet new webapi -f net6.0Aquesta ordre crea els fitxers per a un projecte d'API web bàsic que utilitza controladors, juntament amb un fitxer de projecte de C# anomenat ContosoPizza.csproj , que torna una llista de previsions meteorològiques. Si es produeix un error, assegureu-vos que teniu instal·lat l' SDK de .NET 6 .
Important
Els projectes d'API web estan protegits per
httpsdefecte. Si teniu problemes, configureu el certificat de desenvolupament HTTPS d'ASP.NET Core .Podeu rebre un missatge del Visual Studio Code perquè afegiu recursos per depurar el projecte. Seleccioneu Sí al quadre de diàleg.
L'ordre utilitza una plantilla de projecte d'ASP.NET Core amb l'àlies webapi per aplicar scaffolding a un projecte d'API web basat en C#. Es crea un directori ContosoPizza . Aquest directori conté un projecte ASP.NET Core que s'executa a .NET. El nom del projecte coincideix amb el nom del directori ContosoPizza .
Ara hauríeu de tenir accés a aquests fitxers i directoris:
Bash-| Controllers -| obj -| Properties -| appsettings.Development.json -| appsettings.json -| ContosoPizza.csproj -| Program.cs -| WeatherForecast.csExamineu els fitxers i directoris següents:
Nom Descripció Controllers/ Conté classes amb mètodes públics exposats com a punts de connexió HTTP. Program.cs Configura els serveis i la canalització de sol·licituds HTTP de l'aplicació i conté el punt d'entrada administrat de l'aplicació. ContosoPizza.csproj Conté les metadades de configuració del projecte.
Compilació i prova de l'API web
Executeu l'ordre següent de la CLI de .NET Core a l'intèrpret d'ordres:
CLI de .NETdotnet runL'ordre anterior:
- Cerca el fitxer de projecte al directori actual.
- Recupera i instal·la les dependències de projecte necessàries per a aquest projecte.
- Compila el codi del projecte.
- Allotjau l'API web amb el servidor web de Kestrel d'ASP.NET Core en un punt de connexió HTTP i HTTPS.
Se selecciona un port de 5000 a 5300 per a HTTP, i de 7000 a 7300 per a HTTPS, en el moment de crear el projecte. Els ports usats durant el desenvolupament es poden canviar fàcilment editant el fitxer launchSettings.json del projecte. En aquest mòdul es fa servir l'adreça URL
localhostsegura que comença perhttps.Hauríeu d'obtenir una sortida similar a la següent, que indica que l'aplicació s'està executant:
ConsolaBuilding... 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: DevelopmentSi executeu aquesta aplicació en el vostre propi equip, podeu dirigir un explorador a l'enllaç HTTPS que es mostra a la sortida (en el cas anterior,
https://localhost:7294) per veure la pàgina resultant. Recordeu aquest port, ja que s'usa a tot el mòdul on s'usa{PORT}.Important
Comproveu la sortida del terminal si detecteu qualsevol comportament inesperat. Si la compilació no es fa correctament o es produeixen altres errors, la informació del fitxer de registre ajuda a solucionar problemes. A mesura que feu canvis en el codi, haureu d'aturar l'API web; per fer-ho, seleccioneu CTRL+C al teclat i torneu a executar l'ordre
dotnet run.Obriu un navegador web i aneu a:
Bashhttps://localhost:{PORT}/weatherforecastS'hauria de mostrar una sortida JSON similar a aquesta d'exemple:
JSON[ { "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" }, // ... ]Obriu un nou terminal integrat des del Visual Studio Code. Per fer-ho, seleccioneu Terminal > Nou terminal al menú principal i executeu l'ordre següent:
CLI de .NETdotnet tool install -g Microsoft.dotnet-httpreplL'ordre anterior instal·la l'eina de línia d'ordres .NET HTTP REPL que s'utilitza per fer sol·licituds HTTP a l'API web.
Connecteu-vos a l'API web mitjançant l'ordre següent:
CLI de .NEThttprepl https://localhost:{PORT}Com a alternativa, executeu la següent ordre en qualsevol moment mentre
HttpRepls'executa:CLI de .NETconnect https://localhost:{PORT}Suggeriment
Si l'eina
HttpReplmostra l'advertiment No es pot trobar una descripció d'OpenAPI , la causa més probable és un certificat de desenvolupament que no és de confiança.HttpReplrequereix una connexió de confiança. Per continuar, heu de configurar el sistema per confiar en el certificat de desenvolupament ambdotnet dev-certs https --trust.Exploreu els punts de connexió disponibles executant la següent ordre:
CLI de .NETlsL'ordre anterior detecta totes les API disponibles al punt de connexió connectat i les enumera, com a la sortida següent:
Resultatshttps://localhost:{PORT}/> ls . [] WeatherForecast [GET]Executeu l'ordre següent per anar al punt de connexió
WeatherForecast:CLI de .NETcd WeatherForecastL'ordre anterior mostra una sortida de les API disponibles per al punt de connexió
WeatherForecast:Resultatshttps://localhost:{PORT}/> cd WeatherForecast /WeatherForecast [GET]Feu una sol·licitud fent
GETservirHttpRepll'ordre següent:CLI de .NETgetL'ordre anterior fa una sol·licitud
GETsimilar a anar al punt de connexió a l'explorador:ResultatsHTTP/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" }, // .. ]Tanqueu la sessió
HttpReplactual amb la següent ordre:CLI de .NETexitTorneu al terminal
dotneta la llista desplegable del Visual Studio Code. Per apagar l'API web, seleccioneu CTRL+C al teclat.
Ara que heu creat l'API web, podem modificar-la per satisfer les necessitats de l'API web de pizza.