Come utilizzare un'API Web ASP.NET Core usando RestSharp

REST è l'acronimo di Representational State Transfer, uno stile architettonico diventato estremamente popolare negli ultimi anni. Un'API RESTful è un'API costruita in conformità con i principi e le linee guida di REST. Le API RESTful in genere restituiscono testo normale, JSON o XML come risposta.

RestSharp è una libreria client HTTP open source che semplifica l'utilizzo di servizi RESTful. RestSharp fornisce un'interfaccia intuitiva per gli sviluppatori per lavorare con i servizi RESTful mentre astrae le complessità interne del lavoro con le richieste HTTP. RestSharp supporta sia richieste sincrone che asincrone.

Questo articolo presenta una discussione su come possiamo lavorare con RestSharp per utilizzare i servizi creati utilizzando ASP.NET Core.

Per lavorare con gli esempi di codice in questo articolo, dovresti avere Visual Studio 2019 installato nel tuo sistema. Se non hai già una copia, puoi scaricare Visual Studio 2019 qui. 

Crea un progetto API ASP.NET Core

Prima di tutto, creiamo un progetto ASP.NET Core in Visual Studio. Supponendo che Visual Studio 2019 sia installato nel sistema, seguire i passaggi descritti di seguito per creare un nuovo progetto ASP.Net Core in Visual Studio.

  1. Avvia l'IDE di Visual Studio.
  2. Fai clic su "Crea nuovo progetto".
  3. Nella finestra "Crea nuovo progetto", seleziona "Applicazione Web ASP.NET Core" dall'elenco dei modelli visualizzati.
  4. Fare clic su Avanti.
  5. Nella finestra "Configura il tuo nuovo progetto", specifica il nome e la posizione per il nuovo progetto.
  6. Fare clic su Crea.
  7. Nella finestra "Crea nuova applicazione Web ASP.Net Core", seleziona .NET Core come runtime e ASP.NET Core 2.2 (o successivo) dall'elenco a discesa in alto. Userò ASP.NET Core 3.0 qui.
  8. Seleziona "API" come modello di progetto per creare una nuova applicazione API ASP.NET Core. 
  9. Assicurati che le caselle di controllo "Abilita supporto Docker" e "Configura per HTTPS" siano deselezionate poiché non utilizzeremo queste funzionalità qui.
  10. Assicurati che l'autenticazione sia impostata su "Nessuna autenticazione" poiché non utilizzeremo nemmeno l'autenticazione.
  11. Fare clic su Crea. 

Seguendo questi passaggi verrà creato un nuovo progetto API ASP.NET Core in Visual Studio. Quindi, seleziona la cartella della soluzione Controller nella finestra Esplora soluzioni, fai clic su "Aggiungi -> Controller ..." e seleziona "Controller API con azioni di lettura / scrittura". Assegna a questo nuovo controller il nome DefaultController.

Useremo questo progetto nelle sezioni successive di questo articolo.

Implementare DefaultController nell'API ASP.NET Core

Apri il file DefaultController.cs e sostituisci il codice in esso contenuto con quello indicato di seguito:

using Microsoft.AspNetCore.Mvc;

using System.Collections.Generic;

spazio dei nomi RESTAPIDemo.Controllers

{

    [Route ("api / [controller]")]

    [ApiController]

    public class DefaultController: ControllerBase

    {

        privato readonly Dictionary autori = nuovo dizionario ();

        public DefaultController ()

        {

            autori.Add (1, "Joydip Kanjilal");

            autori.Add (2, "Steve Smith");

            autori.Add (3, "Michele Smith");

        }

        [HttpGet]

        elenco pubblico Get ()

        {

            List lstAuthors = new List ();

            foreach (KeyValuePair keyValuePair negli autori)

                lstAuthors.Add (keyValuePair.Value);

            return lstAuthors;

        }

        [HttpGet ("{id}", Name = "Get")]

        stringa pubblica Get (int id)

        {

            autori di ritorno [id];

        }

        [HttpPost]

        public void Post (valore stringa [FromBody])

        {

            autori. Aggiungi (4, valore);

        }

        [HttpPut ("{id}")]

        public void Put (int id, [FromBody] valore stringa)

        {

            autori [id] = valore;

        }

        [HttpDelete ("{id}")]

        public void Delete (int id)

        {

            autori.Remove (id);

        }

    }

}

Fare riferimento alla classe DefaultController sopra. Notare che questa classe contiene metodi di azione corrispondenti a ciascuno dei verbi HTTP GET, POST, PUT e DELETE. Per semplicità, qui stiamo usando un dizionario per archiviare e recuperare i dati. Puoi testare questa API utilizzando il tuo browser web o strumenti come Postman o Fiddler. Nota che ho codificato l'ID nel metodo HttpPost solo per semplicità. Dovresti implementarlo a modo tuo per generare una chiave univoca.

Fin qui tutto bene. Nelle sezioni che seguono impareremo come lavorare con RestSharp per utilizzare l'API che abbiamo creato.

Crea il client per utilizzare l'API

Useremo un'applicazione console come client per utilizzare l'API creata in precedenza. Supponendo che Visual Studio 2019 sia installato nel sistema, seguire i passaggi descritti di seguito per creare un nuovo progetto di applicazione console .NET Core in Visual Studio.

  1. Avvia l'IDE di Visual Studio.
  2. Fai clic su "Crea nuovo progetto".
  3. Nella finestra "Crea nuovo progetto", seleziona "App Console (.NET Core)" dall'elenco dei modelli visualizzati.
  4. Fare clic su Avanti.
  5. Nella finestra "Configura il tuo nuovo progetto" mostrata di seguito, specifica il nome e la posizione per il nuovo progetto.
  6. Fare clic su Crea.

Questo è tutto ciò che dobbiamo fare per creare un nuovo progetto di applicazione console .NET Core.

Installa il pacchetto NuGet RestSharp

Per lavorare con RestSharp, è necessario installare il pacchetto RestSharp da NuGet. Puoi farlo tramite NuGet Package Manager all'interno dell'IDE di Visual Studio 2019 o eseguendo il comando seguente nella console di NuGet Package Manager:

Pacchetto di installazione RestSharp

Utilizza l'API ASP.NET Core usando RestSharp

Dopo aver installato RestSharp nel tuo progetto, puoi iniziare a usarlo. Innanzitutto, dovrai creare un'istanza di RestClient. Il frammento di codice seguente mostra come creare un'istanza e inizializzare la classe RestClient. Nota che stiamo passando l'URL di base al costruttore della classe RestClient.

Client RestClient = nuovo RestClient ("// localhost: 58179 / api /");

Successivamente, dovresti creare un'istanza della classe RestRequest passando il nome della risorsa e il metodo da utilizzare. Il frammento di codice seguente mostra come ottenere questo risultato.

RestRequest request = new RestRequest ("Default", Method.GET);

Infine, è necessario eseguire la richiesta, deserializzare la risposta e assegnarla a un oggetto appropriato come mostrato nello snippet di codice riportato di seguito.

IRestResponse
   
     risposta = client.Execute
    
     (richiesta);
    
   

Di seguito è riportato l'elenco completo del codice per riferimento.

using RestSharp;

using System;

using System.Collections.Generic;

spazio dei nomi RESTSharpClientDemo

{

    programma di classe

    {

        client RestClient statico privato = nuovo

        RestClient ("// localhost: 58179 / api /");

        static void Main (string [] args)

        {

            RestRequest request = new RestRequest ("Default",

            Method.GET);

            IRestResponse risposta =

            client.Execute (richiesta);

            Console.ReadKey ();

        }

    }

}

Per effettuare una richiesta POST utilizzando RestSharp, puoi utilizzare il codice seguente:

RestRequest request = new RestRequest ("Default", Method.POST);

request.AddJsonBody ("Robert Michael");

var response = client.Execute (richiesta);

RestSharp è disponibile su diverse piattaforme .NET, che è uno dei motivi per cui è così popolare. Degna di nota è anche la capacità di deserializzazione automatica di RestSharp. Puoi saperne di più su RestSharp su GitHub.