So verwenden Sie eine ASP.NET Core-Web-API mit RestSharp

REST ist eine Abkürzung für Representational State Transfer, ein Architekturstil, der in den letzten Jahren sehr beliebt geworden ist. Eine RESTful-API ist eine API, die gemäß den Prinzipien und Richtlinien von REST erstellt wurde. RESTful-APIs geben normalerweise einfachen Text, JSON oder XML als Antwort zurück.

RestSharp ist eine Open-Source-HTTP-Clientbibliothek, mit der RESTful-Services problemlos genutzt werden können. RestSharp bietet eine entwicklerfreundliche Oberfläche für die Arbeit mit RESTful-Diensten und abstrahiert die internen Feinheiten der Arbeit mit HTTP-Anforderungen. RestSharp unterstützt sowohl synchrone als auch asynchrone Anforderungen.

In diesem Artikel wird erläutert, wie wir mit RestSharp zusammenarbeiten können, um mit ASP.NET Core erstellte Dienste zu nutzen.

Um mit den Codebeispielen in diesem Artikel arbeiten zu können, sollte Visual Studio 2019 auf Ihrem System installiert sein. Wenn Sie noch keine Kopie haben, können Sie Visual Studio 2019 hier herunterladen. 

Erstellen Sie ein ASP.NET Core API-Projekt

Zunächst erstellen wir ein ASP.NET Core-Projekt in Visual Studio. Angenommen, Visual Studio 2019 ist auf Ihrem System installiert, führen Sie die folgenden Schritte aus, um ein neues ASP.Net Core-Projekt in Visual Studio zu erstellen.

  1. Starten Sie die Visual Studio-IDE.
  2. Klicken Sie auf "Neues Projekt erstellen".
  3. Wählen Sie im Fenster "Neues Projekt erstellen" aus der Liste der angezeigten Vorlagen "ASP.NET Core-Webanwendung" aus.
  4. Weiter klicken.
  5. Geben Sie im Fenster "Konfigurieren Sie Ihr neues Projekt" den Namen und den Speicherort für das neue Projekt an.
  6. Klicken Sie auf Erstellen.
  7. Wählen Sie im Fenster "Neue ASP.Net Core-Webanwendung erstellen" .NET Core als Laufzeit und ASP.NET Core 2.2 (oder höher) aus der Dropdown-Liste oben aus. Ich werde hier ASP.NET Core 3.0 verwenden.
  8. Wählen Sie "API" als Projektvorlage aus, um eine neue ASP.NET Core API-Anwendung zu erstellen. 
  9. Stellen Sie sicher, dass die Kontrollkästchen "Docker-Unterstützung aktivieren" und "Für HTTPS konfigurieren" deaktiviert sind, da diese Funktionen hier nicht verwendet werden.
  10. Stellen Sie sicher, dass die Authentifizierung auf "Keine Authentifizierung" eingestellt ist, da wir auch keine Authentifizierung verwenden.
  11. Klicken Sie auf Erstellen. 

Durch Ausführen dieser Schritte wird ein neues ASP.NET Core API-Projekt in Visual Studio erstellt. Wählen Sie als Nächstes den Lösungsordner "Controller" im Fenster "Projektmappen-Explorer" aus, klicken Sie auf "Hinzufügen -> Controller ..." und wählen Sie "API-Controller mit Lese- / Schreibaktionen". Nennen Sie diesen neuen Controller DefaultController.

Wir werden dieses Projekt in den folgenden Abschnitten dieses Artikels verwenden.

Implementieren Sie den DefaultController in der ASP.NET Core-API

Öffnen Sie die Datei DefaultController.cs und ersetzen Sie den darin enthaltenen Code durch den folgenden:

using Microsoft.AspNetCore.Mvc;

using System.Collections.Generic;

Namespace RESTAPIDemo.Controllers

{

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

    [ApiController]

    öffentliche Klasse DefaultController: ControllerBase

    {

        private schreibgeschützte Wörterbuchautoren = neues Wörterbuch ();

        public DefaultController ()

        {

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

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

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

        }}

        [HttpGet]

        öffentliche Liste Get ()

        {

            List lstAuthors = new List ();

            foreach (KeyValuePair keyValuePair in Autoren)

                lstAuthors.Add (keyValuePair.Value);

            lstAuthors zurückgeben;

        }}

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

        public string Get (int id)

        {

            Autoren zurückgeben [id];

        }}

        [HttpPost]

        public void Post (Zeichenfolgenwert [FromBody])

        {

            Autoren.Add (4, Wert);

        }}

        [HttpPut ("{id}")]

        public void Put (int id, [FromBody] Zeichenfolgenwert)

        {

            Autoren [id] = Wert;

        }}

        [HttpDelete ("{id}")]

        public void Delete (int id)

        {

            Autoren.Entfernen (id);

        }}

    }}

}}

Weitere Informationen finden Sie oben in der DefaultController-Klasse. Beachten Sie, dass diese Klasse Aktionsmethoden enthält, die den einzelnen HTTP-Verben GET, POST, PUT und DELETE entsprechen. Der Einfachheit halber verwenden wir hier ein Wörterbuch zum Speichern und Abrufen von Daten. Sie können diese API mit Ihrem Webbrowser oder Tools wie Postman oder Fiddler testen. Beachten Sie, dass ich die ID der Einfachheit halber in der HttpPost-Methode fest codiert habe. Sie sollten es auf Ihre eigene Weise implementieren, um einen eindeutigen Schlüssel zu generieren.

So weit, ist es gut. In den folgenden Abschnitten erfahren Sie, wie Sie mit RestSharp arbeiten, um die von uns erstellte API zu nutzen.

Erstellen Sie den Client, um die API zu verwenden

Wir werden eine Konsolenanwendung als Client verwenden, um die zuvor erstellte API zu verwenden. Angenommen, Visual Studio 2019 ist auf Ihrem System installiert, führen Sie die folgenden Schritte aus, um ein neues .NET Core Console-Anwendungsprojekt in Visual Studio zu erstellen.

  1. Starten Sie die Visual Studio-IDE.
  2. Klicken Sie auf "Neues Projekt erstellen".
  3. Wählen Sie im Fenster "Neues Projekt erstellen" aus der Liste der angezeigten Vorlagen "Konsolen-App (.NET Core)" aus.
  4. Weiter klicken.
  5. Geben Sie im nächsten Fenster "Konfigurieren Sie Ihr neues Projekt" den Namen und den Speicherort für das neue Projekt an.
  6. Klicken Sie auf Erstellen.

Das ist alles, was wir tun müssen, um ein neues .NET Core Console-Anwendungsprojekt zu erstellen.

Installieren Sie das RestSharp NuGet-Paket

Um mit RestSharp zu arbeiten, sollten Sie das RestSharp-Paket von NuGet installieren. Sie können dies entweder über den NuGet Package Manager in der Visual Studio 2019-IDE oder durch Ausführen des folgenden Befehls in der NuGet Package Manager-Konsole tun:

Install-Package RestSharp

Verwenden Sie die ASP.NET Core-API mit RestSharp

Sobald Sie RestSharp in Ihrem Projekt installiert haben, können Sie es verwenden. Zunächst müssen Sie eine Instanz von RestClient erstellen. Das folgende Codeausschnitt zeigt, wie Sie die RestClient-Klasse instanziieren und initialisieren können. Beachten Sie, dass wir die Basis-URL an den Konstruktor der RestClient-Klasse übergeben.

RestClient client = neuer RestClient ("// localhost: 58179 / api /");

Als Nächstes sollten Sie eine Instanz der RestRequest-Klasse erstellen, indem Sie den Ressourcennamen und die zu verwendende Methode übergeben. Das folgende Codefragment zeigt, wie dies erreicht werden kann.

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

Zuletzt müssen Sie die Anforderung ausführen, die Antwort deserialisieren und sie einem Objekt entsprechend zuweisen, wie im unten angegebenen Codeausschnitt gezeigt.

IRestResponse
   
     response = client.Execute
    
     (Anfrage);
    
   

Das Folgende ist die vollständige Codeliste als Referenz.

mit RestSharp;

using System;

using System.Collections.Generic;

Namespace RESTSharpClientDemo

{

    Klassenprogramm

    {

        privater statischer RestClient-Client = neu

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

        statische Leere Main (string [] args)

        {

            RestRequest request = new RestRequest ("Standard",

            Method.GET);

            IRestResponse Antwort =

            client.Execute (Anfrage);

            Console.ReadKey ();

        }}

    }}

}}

Um eine POST-Anfrage mit RestSharp zu stellen, können Sie den folgenden Code verwenden:

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

request.AddJsonBody ("Robert Michael");

var response = client.Execute (Anfrage);

RestSharp ist auf mehreren .NET-Plattformen verfügbar. Dies ist einer der Gründe, warum es so beliebt ist. Bemerkenswert ist auch die automatische Deserialisierungsfunktion von RestSharp. Sie können mehr über RestSharp auf GitHub erfahren.