Как да консумирате ASP.NET Core Web API с помощта на RestSharp

REST е съкращение от Reprezentative State Transfer, архитектурен стил, който стана изключително популярен през последните няколко години. RESTful API е този, който е изграден в съответствие с принципите и насоките на REST. RESTful API обикновено връщат обикновен текст, JSON или XML като отговор.

RestSharp е HTTP клиентска библиотека с отворен код, която улеснява консумацията на RESTful услуги. RestSharp осигурява удобен за разработчици интерфейс за работа с RESTful услуги, като същевременно абстрахира вътрешните тънкости при работа с HTTP заявки. RestSharp поддържа синхронни и асинхронни заявки.

Тази статия представя дискусия за това как можем да работим с RestSharp за консумация на услуги, изградени с помощта на ASP.NET Core.

За да работите с примерите за кодове в тази статия, трябва да имате Visual Studio 2019, инсталиран във вашата система. Ако все още нямате копие, можете да изтеглите Visual Studio 2019 тук. 

Създайте проект за ASP.NET Core API

Първо, нека създадем проект на ASP.NET Core в Visual Studio. Ако приемем, че Visual Studio 2019 е инсталиран във вашата система, следвайте стъпките, описани по-долу, за да създадете нов проект ASP.Net Core в Visual Studio.

  1. Стартирайте Visual Studio IDE.
  2. Кликнете върху „Създаване на нов проект“.
  3. В прозореца „Създаване на нов проект“ изберете „ASP.NET Core Web Application“ от показания списък с шаблони.
  4. Щракнете върху Напред.
  5. В прозореца „Конфигуриране на вашия нов проект“ посочете името и местоположението на новия проект.
  6. Щракнете върху Създаване.
  7. В прозореца „Създаване на ново уеб приложение на ASP.Net Core“ изберете .NET Core като време на изпълнение и ASP.NET Core 2.2 (или по-нова версия) от падащия списък в горната част. Тук ще използвам ASP.NET Core 3.0.
  8. Изберете „API“ като шаблон на проекта, за да създадете ново приложение на ASP.NET Core API. 
  9. Уверете се, че квадратчетата „Активиране на поддръжката на Docker“ и „Конфигуриране за HTTPS“ са отметнати, тъй като тук няма да използваме тези функции.
  10. Уверете се, че удостоверяването е зададено като „Без удостоверяване“, тъй като и ние няма да използваме удостоверяване.
  11. Щракнете върху Създаване. 

Следвайки тези стъпки ще създадете нов проект за ASP.NET Core API във Visual Studio. След това изберете папката за решение Controllers в прозореца на Solution Explorer, щракнете върху „Добавяне -> Controller…“ и изберете „API Controller с действия за четене / запис“. Наименувайте този нов контролер DefaultController.

Ще използваме този проект в следващите раздели на тази статия.

Внедрете DefaultController в ASP.NET Core API

Отворете файла DefaultController.cs и заменете кода в него с този, даден по-долу:

използване на Microsoft.AspNetCore.Mvc;

използване на System.Collections.Generic;

пространство от имена RESTAPIDemo.Controllers

{

    [Маршрут („api / [контролер]“)]

    [ApiController]

    публичен клас DefaultController: ControllerBase

    {

        частни автори на речника само за четене = нов речник ();

        публичен DefaultController ()

        {

            автори.Add (1, "Joydip Kanjilal");

            автори.Добави (2, "Стив Смит");

            автори.Add (3, "Michele Smith");

        }

        [HttpGet]

        публичен списък Get ()

        {

            Списък lstAuthors = нов Списък ();

            foreach (KeyValuePair keyValuePair в авторите)

                lstAuthors.Add (keyValuePair.Value);

            връщане lstAuthors;

        }

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

        публичен низ Get (int id)

        {

            връщане на автори [id];

        }

        [HttpPost]

        публична невалидна публикация (стойност на низа [FromBody])

        {

            автори.Add (4, стойност);

        }

        [HttpPut ("{id}")]

        public void Put (int id, [FromBody] string value)

        {

            автори [id] = стойност;

        }

        [HttpDelete („{id}“)]

        public void Delete (int id)

        {

            автори.Премахване (id);

        }

    }

}

Обърнете се към класа DefaultController по-горе. Имайте предвид, че този клас съдържа методи за действие, съответстващи на всеки от HTTP глаголите GET, POST, PUT и DELETE. За по-голяма простота тук използваме речник за съхраняване и извличане на данни. Можете да тествате този API с помощта на вашия уеб браузър или инструменти като Postman или Fiddler. Имайте предвид, че съм кодирал твърдо идентификатора в метода HttpPost само за простота. Трябва да го внедрите по свой начин, за да генерирате уникален ключ.

Дотук добре. В следващите раздели ще научим как да работим с RestSharp за консумиране на API, който сме изградили.

Създайте клиента, който да използва API

Ще използваме конзолно приложение като клиент, за да използваме API, който сме изградили по-рано. Ако приемем, че Visual Studio 2019 е инсталиран във вашата система, следвайте стъпките, описани по-долу, за да създадете нов проект за приложение на .NET Core Console в Visual Studio.

  1. Стартирайте Visual Studio IDE.
  2. Кликнете върху „Създаване на нов проект“.
  3. В прозореца „Създаване на нов проект“ изберете „Console App (.NET Core)“ от показания списък с шаблони.
  4. Щракнете върху Напред.
  5. В показания след това прозорец „Конфигуриране на вашия нов проект“ посочете името и местоположението на новия проект.
  6. Щракнете върху Създаване.

Това е всичко, което трябва да направим, за да създадем нов проект .NET Core Console Application.

Инсталирайте пакета RestSharp NuGet

За да работите с RestSharp, трябва да инсталирате пакета RestSharp от NuGet. Можете да направите това или чрез NuGet Package Manager вътре в IDE на Visual Studio 2019, или като изпълните следната команда в конзолата NuGet Package Manager:

Инсталирайте пакета RestSharp

Консумирайте API на ASP.NET Core, използвайки RestSharp

След като инсталирате RestSharp във вашия проект, можете да започнете да го използвате. Първо, ще трябва да създадете екземпляр на RestClient. Следният кодов фрагмент показва как можете да създадете екземпляр и да инициализирате RestClient класа. Имайте предвид, че предаваме основния URL адрес на конструктора на класа RestClient.

RestClient клиент = нов RestClient ("// localhost: 58179 / api /");

След това трябва да създадете екземпляр на класа RestRequest, като предадете името на ресурса и метода, който ще се използва. Следният кодов фрагмент показва как може да се постигне това.

RestRequest заявка = нова RestRequest ("По подразбиране", Method.GET);

И накрая, трябва да изпълните заявката, да десериализирате отговора и да го присвоите на обект, както е подходящо, както е показано в кодовия фрагмент, даден по-долу.

IRestResponse
   
     response = client.Execute
    
     (искане);
    
   

Следва пълният списък с кодове за справка.

използване на RestSharp;

използване на система;

използване на System.Collections.Generic;

пространство от имена RESTSharpClientDemo

{

    клас Програма

    {

        частен статичен клиент на RestClient = нов

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

        static void Main (низ [] аргументи)

        {

            RestRequest заявка = нова RestRequest ("По подразбиране",

            Метод.GET);

            IRestResponse отговор =

            клиент.Изпълнение (искане);

            Console.ReadKey ();

        }

    }

}

За да направите POST заявка с помощта на RestSharp, можете да използвате следния код:

RestRequest заявка = нова RestRequest ("По подразбиране", Method.POST);

request.AddJsonBody ("Робърт Майкъл");

var response = client.Execute (заявка);

RestSharp се предлага в няколко .NET платформи, което е една от причините да е толкова популярен. Възможността за автоматична десериализация на RestSharp също е забележителна. Можете да научите повече за RestSharp на GitHub.