Programmering

Sådan forbruges en ASP.NET Core Web API ved hjælp af RestSharp

REST er et akronym for Representational State Transfer, en arkitektonisk stil, der er blevet ekstremt populær i løbet af de sidste par år. En RESTful API er en, som den er bygget i overensstemmelse med REST's principper og retningslinjer. RESTfulde API'er returnerer normalt almindelig tekst, JSON eller XML som et svar.

RestSharp er et open source HTTP-klientbibliotek, der gør det let at forbruge RESTful-tjenester. RestSharp giver en udviklervenlig grænseflade til at arbejde med RESTful-tjenester, mens de abstrakte interne vanskeligheder ved at arbejde med HTTP-anmodninger abstraheres. RestSharp understøtter både synkron og asynkron anmodning.

Denne artikel præsenterer en diskussion af, hvordan vi kan arbejde med RestSharp for at forbruge tjenester, der er bygget ved hjælp af ASP.NET Core.

For at arbejde med kodeeksemplerne i denne artikel skal Visual Studio 2019 være installeret i dit system. Hvis du ikke allerede har en kopi, kan du downloade Visual Studio 2019 her.

Opret et ASP.NET Core API-projekt

Lad os først starte med at oprette et ASP.NET Core-projekt i Visual Studio. Forudsat at Visual Studio 2019 er installeret i dit system, skal du følge nedenstående trin for at oprette et nyt ASP.Net Core-projekt i Visual Studio.

  1. Start Visual Studio IDE.
  2. Klik på "Opret nyt projekt."
  3. I vinduet "Opret nyt projekt" skal du vælge "ASP.NET Core Web Application" fra listen over skabeloner, der vises.
  4. Klik på Næste.
  5. I vinduet "Konfigurer dit nye projekt" skal du angive navnet og placeringen for det nye projekt.
  6. Klik på Opret.
  7. I vinduet "Opret ny ASP.Net Core-webapplikation" skal du vælge .NET Core som runtime og ASP.NET Core 2.2 (eller nyere) fra rullelisten øverst. Jeg bruger ASP.NET Core 3.0 her.
  8. Vælg “API” som projektskabelon for at oprette en ny ASP.NET Core API-applikation.
  9. Sørg for, at afkrydsningsfelterne "Aktivér Docker-support" og "Konfigurer til HTTPS" ikke er markeret, da vi ikke bruger disse funktioner her.
  10. Sørg for, at godkendelse er indstillet som "Ingen godkendelse", da vi heller ikke bruger godkendelse.
  11. Klik på Opret.

Ved at følge disse trin oprettes et nyt ASP.NET Core API-projekt i Visual Studio. Vælg derefter Controllers-løsningsmappen i vinduet Solution Explorer, klik på "Tilføj -> Controller ...", og vælg "API-controller med læse / skrivehandlinger." Navngiv denne nye controller DefaultController.

Vi bruger dette projekt i de efterfølgende afsnit i denne artikel.

Implementér DefaultController i ASP.NET Core API

Åbn filen DefaultController.cs, og udskift koden i den med nedenstående:

ved hjælp af Microsoft.AspNetCore.Mvc;

ved hjælp af System.Collections.Generic;

navneområde RESTAPIDemo.Controllers

{

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

[ApiController]

offentlig klasse DefaultController: ControllerBase

    {

private readonly ordbogsforfattere = ny ordbog ();

offentlig DefaultController ()

        {

forfattere.Tilføj (1, "Joydip Kanjilal");

forfattere.Tilføj (2, "Steve Smith");

forfattere.Tilføj (3, "Michele Smith");

        }

[HttpGet]

offentlig liste Get ()

        {

Liste lstAuthors = ny liste ();

foreach (KeyValuePair keyValuePair hos forfattere)

lstAuthors.Add (keyValuePair.Value);

returnere lstAuthors;

        }

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

public string Get (int id)

        {

returnere forfattere [id];

        }

[HttpPost]

offentlig ugyldig Post ([FromBody] strengværdi)

        {

forfattere.Tilføj (4, værdi);

        }

[HttpPut ("{id}")]

public void Put (int id, [FromBody] strengværdi)

        {

forfattere [id] = værdi;

        }

[HttpDelete ("{id}")]

offentlig tomrum Slet (int id)

        {

forfattere.Fjern (id);

        }

    }

}

Se StandardController-klassen ovenfor. Bemærk, at denne klasse indeholder handlingsmetoder, der svarer til hver af HTTP-verbene GET, POST, PUT og DELETE. Af enkelheds skyld bruger vi en ordbog her til at gemme og hente data. Du kan teste denne API ved hjælp af din webbrowser eller værktøjer som Postman eller Fiddler. Bemærk, at jeg har hårdkodet id'et i HttpPost-metoden bare for enkelhed. Du skal implementere det på din egen måde for at generere en unik nøgle.

Så langt så godt. I de følgende afsnit lærer vi, hvordan vi arbejder med RestSharp for at forbruge den API, vi har bygget.

Opret klienten til at forbruge API'en

Vi bruger en konsolapplikation som klient til at forbruge den API, vi byggede tidligere. Forudsat at Visual Studio 2019 er installeret i dit system, skal du følge nedenstående trin for at oprette et nyt .NET Core Console Application-projekt i Visual Studio.

  1. Start Visual Studio IDE.
  2. Klik på "Opret nyt projekt."
  3. I vinduet "Opret nyt projekt" skal du vælge "Konsolapp (.NET Core)" fra listen over skabeloner, der vises.
  4. Klik på Næste.
  5. I vinduet "Konfigurer dit nye projekt", der vises nedenfor, skal du angive navnet og placeringen for det nye projekt.
  6. Klik på Opret.

Det er alt, hvad vi skal gøre for at oprette et nyt .NET Core Console Application-projekt.

Installer RestSharp NuGet-pakken

For at arbejde med RestSharp skal du installere RestSharp-pakken fra NuGet. Du kan gøre dette enten via NuGet Package Manager inde i Visual Studio 2019 IDE eller ved at udføre følgende kommando i NuGet Package Manager-konsollen:

Install-pakke RestSharp

Forbrug ASP.NET Core API ved hjælp af RestSharp

Når du har installeret RestSharp i dit projekt, kan du begynde at bruge det. Først skal du oprette en forekomst af RestClient. Følgende kodestykke viser, hvordan du kan starte og initialisere klassen RestClient. Bemærk, at vi sender basis-URL til konstruktøren af ​​klassen RestClient.

RestClient-klient = ny RestClient ("// localhost: 58179 / api /");

Dernæst skal du oprette en forekomst af klassen RestRequest ved at videregive ressourcenavnet og den metode, der skal bruges. Følgende kodestykke viser, hvordan dette kan opnås.

RestRequest anmodning = ny RestRequest ("Standard", Method.GET);

Endelig skal du udføre anmodningen, deserialisere svaret og tildele det til et objekt, som det er relevant, som vist i kodestykket nedenfor.

IRestResponse svar = klient. udfør(anmodning);

Følgende er den komplette kodeliste til din reference.

ved hjælp af RestSharp;

ved hjælp af System;

ved hjælp af System.Collections.Generic;

navneområde RESTSharpClientDemo

{

klasse Program

    {

privat statisk RestClient-klient = ny

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

statisk ugyldigt Main (streng [] args)

        {

RestRequest anmodning = ny RestRequest ("Standard",

Method.GET);

IRestResponse svar =

klient. udfør(anmodning);

Console.ReadKey ();

        }

    }

}

For at foretage en POST-anmodning ved hjælp af RestSharp kan du bruge følgende kode:

RestRequest anmodning = ny RestRequest ("Standard", Method.POST);

request.AddJsonBody ("Robert Michael");

var respons = client.Execute (anmodning);

RestSharp er tilgængelig på tværs af flere .NET-platforme, hvilket er en af ​​grundene til, at det er så populært. Den automatiske deserialiseringsfunktion i RestSharp er også bemærkelsesværdig. Du kan lære mere om RestSharp på GitHub.