Comment consommer une API Web ASP.NET Core à l'aide de RestSharp

REST est un acronyme pour Representational State Transfer, un style architectural qui est devenu extrêmement populaire au cours des dernières années. Une API RESTful est une API qui est construite conformément aux principes et directives de REST. Les API RESTful renvoient généralement du texte brut, JSON ou XML en tant que réponse.

RestSharp est une bibliothèque cliente HTTP open source qui facilite la consommation de services RESTful. RestSharp fournit une interface conviviale pour les développeurs pour travailler avec les services RESTful tout en résumant les subtilités internes du travail avec les requêtes HTTP. RestSharp prend en charge les requêtes synchrones et asynchrones.

Cet article présente une discussion sur la façon dont nous pouvons travailler avec RestSharp pour consommer des services créés à l'aide d'ASP.NET Core.

Pour utiliser les exemples de code de cet article, vous devez avoir Visual Studio 2019 installé sur votre système. Si vous n'en avez pas déjà une copie, vous pouvez télécharger Visual Studio 2019 ici. 

Créer un projet d'API ASP.NET Core

Tout d'abord, créons un projet ASP.NET Core dans Visual Studio. En supposant que Visual Studio 2019 est installé sur votre système, suivez les étapes décrites ci-dessous pour créer un nouveau projet ASP.Net Core dans Visual Studio.

  1. Lancez l'IDE de Visual Studio.
  2. Cliquez sur "Créer un nouveau projet".
  3. Dans la fenêtre «Créer un nouveau projet», sélectionnez «Application Web ASP.NET Core» dans la liste des modèles affichés.
  4. Cliquez sur Suivant.
  5. Dans la fenêtre «Configurer votre nouveau projet», spécifiez le nom et l'emplacement du nouveau projet.
  6. Cliquez sur Créer.
  7. Dans la fenêtre «Créer une nouvelle application Web ASP.Net Core», sélectionnez .NET Core comme moteur d'exécution et ASP.NET Core 2.2 (ou version ultérieure) dans la liste déroulante en haut. J'utiliserai ASP.NET Core 3.0 ici.
  8. Sélectionnez «API» comme modèle de projet pour créer une nouvelle application API ASP.NET Core. 
  9. Assurez-vous que les cases à cocher «Activer le support Docker» et «Configurer pour HTTPS» ne sont pas cochées car nous n'utiliserons pas ces fonctionnalités ici.
  10. Assurez-vous que l'authentification est définie sur «Aucune authentification» car nous n'utiliserons pas non plus l'authentification.
  11. Cliquez sur Créer. 

Suivre ces étapes créera un nouveau projet d'API ASP.NET Core dans Visual Studio. Ensuite, sélectionnez le dossier de solution Contrôleurs dans la fenêtre Explorateur de solutions, cliquez sur «Ajouter -> Contrôleur…» et sélectionnez «Contrôleur API avec actions de lecture / écriture». Nommez ce nouveau contrôleur DefaultController.

Nous utiliserons ce projet dans les sections suivantes de cet article.

Implémenter le DefaultController dans l'API ASP.NET Core

Ouvrez le fichier DefaultController.cs et remplacez le code qu'il contient par celui donné ci-dessous:

en utilisant Microsoft.AspNetCore.Mvc;

using System.Collections.Generic;

namespace RESTAPIDemo.Controllers

{

    [Route ("api / [contrôleur]")]

    [ApiController]

    classe publique DefaultController: ControllerBase

    {

        privé en lecture seule auteurs de dictionnaire = nouveau dictionnaire ();

        public DefaultController ()

        {

            auteurs.Ajouter (1, "Joydip Kanjilal");

            auteurs.Ajouter (2, "Steve Smith");

            auteurs.Ajouter (3, "Michele Smith");

        }

        [HttpGet]

        Liste publique Get ()

        {

            List lstAuthors = new List ();

            foreach (KeyValuePair keyValuePair dans les auteurs)

                lstAuthors.Add (keyValuePair.Value);

            return lstAuthors;

        }

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

        chaîne publique Get (int id)

        {

            renvoyer les auteurs [id];

        }

        [HttpPost]

        public void Post (valeur de chaîne [FromBody])

        {

            auteurs.Ajouter (4, valeur);

        }

        [HttpPut ("{id}")]

        public void Put (int id, valeur de chaîne [FromBody])

        {

            auteurs [id] = valeur;

        }

        [HttpDelete ("{id}")]

        public void Delete (int id)

        {

            auteurs.Supprimer (id);

        }

    }

}

Reportez-vous à la classe DefaultController ci-dessus. Notez que cette classe contient des méthodes d'action correspondant à chacun des verbes HTTP GET, POST, PUT et DELETE. Par souci de simplicité, nous utilisons ici un dictionnaire pour stocker et récupérer des données. Vous pouvez tester cette API à l'aide de votre navigateur Web ou d'outils tels que Postman ou Fiddler. Notez que j'ai codé en dur l'ID dans la méthode HttpPost juste pour plus de simplicité. Vous devez l'implémenter à votre manière pour générer une clé unique.

Jusqu'ici tout va bien. Dans les sections qui suivent, nous allons apprendre à travailler avec RestSharp pour utiliser l'API que nous avons créée.

Créer le client pour consommer l'API

Nous utiliserons une application console en tant que client pour consommer l'API que nous avons créée précédemment. En supposant que Visual Studio 2019 est installé sur votre système, suivez les étapes décrites ci-dessous pour créer un nouveau projet d'application console .NET Core dans Visual Studio.

  1. Lancez l'IDE de Visual Studio.
  2. Cliquez sur "Créer un nouveau projet".
  3. Dans la fenêtre «Créer un nouveau projet», sélectionnez «Application console (.NET Core)» dans la liste des modèles affichés.
  4. Cliquez sur Suivant.
  5. Dans la fenêtre «Configurer votre nouveau projet» ci-dessous, spécifiez le nom et l'emplacement du nouveau projet.
  6. Cliquez sur Créer.

C'est tout ce que nous avons à faire pour créer un nouveau projet d'application console .NET Core.

Installez le package RestSharp NuGet

Pour travailler avec RestSharp, vous devez installer le package RestSharp à partir de NuGet. Vous pouvez le faire via le gestionnaire de package NuGet dans l'IDE de Visual Studio 2019 ou en exécutant la commande suivante dans la console du gestionnaire de package NuGet:

Package d'installation RestSharp

Consommez l'API ASP.NET Core à l'aide de RestSharp

Une fois que vous avez installé RestSharp dans votre projet, vous pouvez commencer à l'utiliser. Tout d'abord, vous devrez créer une instance de RestClient. L'extrait de code suivant montre comment vous pouvez instancier et initialiser la classe RestClient. Notez que nous transmettons l'URL de base au constructeur de la classe RestClient.

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

Ensuite, vous devez créer une instance de la classe RestRequest en passant le nom de la ressource et la méthode à utiliser. L'extrait de code suivant montre comment cela peut être réalisé.

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

Enfin, vous devez exécuter la demande, désérialiser la réponse et l'affecter à un objet comme il convient, comme indiqué dans l'extrait de code ci-dessous.

IRestResponse
   
     response = client.Exécuter
    
     (demande);
    
   

Ce qui suit est la liste complète des codes pour votre référence.

en utilisant RestSharp;

en utilisant le système;

using System.Collections.Generic;

espace de noms RESTSharpClientDemo

{

    programme de classe

    {

        client RestClient statique privé = nouveau

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

        static void Main (string [] args)

        {

            RestRequest request = new RestRequest ("Default",

            Method.GET);

            IRestResponse réponse =

            client.Exécuter (demande);

            Console.ReadKey ();

        }

    }

}

Pour effectuer une requête POST à ​​l'aide de RestSharp, vous pouvez utiliser le code suivant:

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

request.AddJsonBody ("Robert Michael");

var réponse = client.Execute (demande);

RestSharp est disponible sur plusieurs plates-formes .NET, ce qui est l'une des raisons pour lesquelles il est si populaire. La capacité de désérialisation automatique de RestSharp est également remarquable. Vous pouvez en savoir plus sur RestSharp sur GitHub.