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:

CLI de .NET
dotnet --list-sdks

Veureu un resultat similar al següent:

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

  1. A Visual Studio Code, seleccioneu Fitxer > Obre carpeta .

  2. Creeu una carpeta amb el nom ContosoPizza a la ubicació que preferiu i seleccioneu Seleccionar carpeta .

  3. Obriu el terminal integrat des del Visual Studio Code; per fer-ho, seleccioneu Visualitza > Terminal al menú principal.

  4. A la finestra del terminal, copieu i enganxeu la següent ordre:

    CLI de .NET
    dotnet new webapi -f net6.0
    

    Aquesta 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 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.cs
    
  5. Examineu 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

  1. Executeu l'ordre següent de la CLI de .NET Core a l'intèrpret d'ordres:

    CLI de .NET
    dotnet run
    

    L'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 per https.

    Hauríeu d'obtenir una sortida similar a la següent, que indica que l'aplicació s'està executant:

    Consola
    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        
    

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

  2. Obriu un navegador web i aneu a:

    Bash
    https://localhost:{PORT}/weatherforecast
    

    S'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"
        },
        // ...
    ]
    
  3. 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 .NET
    dotnet tool install -g Microsoft.dotnet-httprepl
    

    L'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.

  4. Connecteu-vos a l'API web mitjançant l'ordre següent:

    CLI de .NET
    httprepl https://localhost:{PORT}
    

    Com a alternativa, executeu la següent ordre en qualsevol moment mentre HttpRepls'executa:

    CLI de .NET
    connect 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 amb dotnet dev-certs https --trust.

  5. Exploreu els punts de connexió disponibles executant la següent ordre:

    CLI de .NET
    ls
    

    L'ordre anterior detecta totes les API disponibles al punt de connexió connectat i les enumera, com a la sortida següent:

    Resultats
    https://localhost:{PORT}/> ls
    .                 []
    WeatherForecast   [GET] 
    
  6. Executeu l'ordre següent per anar al punt de connexió WeatherForecast:

    CLI de .NET
    cd WeatherForecast
    

    L'ordre anterior mostra una sortida de les API disponibles per al punt de connexió WeatherForecast:

    Resultats
    https://localhost:{PORT}/> cd WeatherForecast
    /WeatherForecast    [GET]
    
  7. Feu una sol·licitud fent GETservir HttpRepll'ordre següent:

    CLI de .NET
    get
    

    L'ordre anterior fa una sol·licitud GETsimilar a anar al punt de connexió a l'explorador:

    Resultats
    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"
        },
        // ..
    ]
    
  8. Tanqueu la sessió HttpReplactual amb la següent ordre:

    CLI de .NET
    exit
    
  9. Torneu 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.


Mòdul completat:

Següent