Cómo consumir una API web básica de ASP.NET con RestSharp

REST es un acrónimo de Representational State Transfer, un estilo arquitectónico que se ha vuelto extremadamente popular en los últimos años. Una API RESTful es aquella que está construida de acuerdo con los principios y directrices de REST. Las API RESTful generalmente devuelven texto sin formato, JSON o XML como respuesta.

RestSharp es una biblioteca de cliente HTTP de código abierto que facilita el consumo de servicios RESTful. RestSharp proporciona una interfaz amigable para el desarrollador para trabajar con servicios RESTful mientras abstrae las complejidades internas de trabajar con solicitudes HTTP. RestSharp admite solicitudes síncronas y asíncronas.

Este artículo presenta una discusión sobre cómo podemos trabajar con RestSharp para consumir servicios creados con ASP.NET Core.

Para trabajar con los ejemplos de código de este artículo, debe tener instalado Visual Studio 2019 en su sistema. Si aún no tiene una copia, puede descargar Visual Studio 2019 aquí.

Crear un proyecto ASP.NET Core API

En primer lugar, creemos un proyecto ASP.NET Core en Visual Studio. Suponiendo que Visual Studio 2019 esté instalado en su sistema, siga los pasos descritos a continuación para crear un nuevo proyecto ASP.Net Core en Visual Studio.

  1. Inicie el IDE de Visual Studio.
  2. Haga clic en "Crear nuevo proyecto".
  3. En la ventana "Crear nuevo proyecto", seleccione "Aplicación web ASP.NET Core" de la lista de plantillas que se muestran.
  4. Haga clic en Siguiente.
  5. En la ventana "Configure su nuevo proyecto", especifique el nombre y la ubicación del nuevo proyecto.
  6. Haz clic en Crear.
  7. En la ventana "Crear una nueva aplicación web ASP.Net Core", seleccione .NET Core como el tiempo de ejecución y ASP.NET Core 2.2 (o posterior) de la lista desplegable en la parte superior. Usaré ASP.NET Core 3.0 aquí.
  8. Seleccione "API" como plantilla de proyecto para crear una nueva aplicación ASP.NET Core API.
  9. Asegúrese de que las casillas de verificación "Habilitar compatibilidad con Docker" y "Configurar para HTTPS" no estén marcadas, ya que no utilizaremos esas funciones aquí.
  10. Asegúrese de que la autenticación esté configurada como "Sin autenticación", ya que tampoco la utilizaremos.
  11. Haz clic en Crear.

Seguir estos pasos creará un nuevo proyecto API ASP.NET Core en Visual Studio. A continuación, seleccione la carpeta de la solución Controladores en la ventana Explorador de soluciones, haga clic en "Agregar -> Controlador …" y seleccione "Controlador API con acciones de lectura / escritura". Nombre este nuevo controlador DefaultController.

Utilizaremos este proyecto en las secciones posteriores de este artículo.

Implemente el DefaultController en ASP.NET Core API

Abra el archivo DefaultController.cs y reemplace el código que contiene con el siguiente:

usando Microsoft.AspNetCore.Mvc;
usando System.Collections.Generic;
espacio de nombres RESTAPIDemo.Controllers
{
[Route("api/[controller]")]
[ApiController]
clase pública DefaultController: ControllerBase
{
Diccionario privado de solo lectura autores = nuevo diccionario();
public DefaultController ()
{
autores.Add (1, "Joydip Kanjilal");
autores. Add (2, "Steve Smith");
autores. Add (3, "Michele Smith");
}
[HttpGet]
Lista pública Obtener()
{
Lista lstAuthors = nueva lista();
foreach (KeyValuePair keyValuePair en autores)
lstAuthors.Add (keyValuePair.Value);
volver lstAuthors;
}
[HttpGet("{id}", Name = "Get")]
cadena pública Get (int id)
{
autores de retorno[id];
}
[HttpPost]
Publicación nula pública ([FromBody] valor de cadena)
{
autores. Añadir (4, valor);
}
[HttpPut("{id}")]
public void Put (int id, [FromBody] valor de cadena)
{
autores[id] = valor;
}
[HttpDelete("{id}")]
public void Delete (int id)
{
autores. Eliminar (id);
}
}
}

Consulte la clase DefaultController anterior. Tenga en cuenta que esta clase contiene métodos de acción correspondientes a cada uno de los verbos HTTP GET, POST, PUT y DELETE. En aras de la simplicidad, estamos utilizando un diccionario aquí para almacenar y recuperar datos. Puede probar esta API utilizando su navegador web o herramientas como Cartero o violinista. Tenga en cuenta que he codificado el ID en el método HttpPost solo por simplicidad. Debe implementarlo a su manera para generar una clave única.

Hasta aquí todo bien. En las siguientes secciones, aprenderemos cómo trabajar con RestSharp para consumir la API que hemos creado.

Crea el cliente para consumir la API

Utilizaremos una aplicación de consola como cliente para consumir la API que creamos anteriormente. Suponiendo que Visual Studio 2019 esté instalado en su sistema, siga los pasos descritos a continuación para crear un nuevo proyecto de aplicación de consola .NET Core en Visual Studio.

  1. Inicie el IDE de Visual Studio.
  2. Haga clic en "Crear nuevo proyecto".
  3. En la ventana "Crear nuevo proyecto", seleccione "Aplicación de consola (.NET Core)" de la lista de plantillas que se muestran.
  4. Haga clic en Siguiente.
  5. En la ventana "Configure su nuevo proyecto" que se muestra a continuación, especifique el nombre y la ubicación del nuevo proyecto.
  6. Haz clic en Crear.

Eso es todo lo que tenemos que hacer para crear un nuevo proyecto de aplicación de consola .NET Core.

Instale el paquete RestSharp NuGet

Para trabajar con RestSharp, debe instalar el paquete RestSharp de NuGet. Puede hacerlo a través del Administrador de paquetes NuGet dentro del IDE de Visual Studio 2019, o ejecutando el siguiente comando en la Consola del Administrador de paquetes NuGet:

Install-Package RestSharp

Consume la API ASP.NET Core usando RestSharp

Una vez que haya instalado RestSharp en su proyecto, puede comenzar a usarlo. Primero, deberá crear una instancia de RestClient. El siguiente fragmento de código muestra cómo puede crear instancias e inicializar la clase RestClient. Tenga en cuenta que estamos pasando la URL base al constructor de la clase RestClient.

Cliente RestClient = nuevo RestClient ("http: // localhost: 58179 / api /");

A continuación, debe crear una instancia de la clase RestRequest pasando el nombre del recurso y el método que se utilizará. El siguiente fragmento de código muestra cómo se puede lograr esto.

Solicitud RestRequest = nueva RestRequest ("Predeterminado", Method.GET);

Por último, debe ejecutar la solicitud, deserializar la respuesta y asignarla a un objeto según corresponda, como se muestra en el fragmento de código que se proporciona a continuación.

IRestResponse <Lista> respuesta = cliente. Ejecutar <Lista> (solicitud);

El siguiente es el listado completo de códigos para su referencia.

usando RestSharp;
utilizando el sistema;
usando System.Collections.Generic;
espacio de nombres RESTSharpClientDemo
{
Programa de clase
{
cliente RestClient estático privado = nuevo
RestClient ("http: // localhost: 58179 / api /");
vacío estático Main (string[] args)
{
Solicitud RestRequest = nueva RestRequest ("Predeterminado",
Método OBTENER);
IRestResponse <Lista> respuesta =
cliente.Ejecutar <Lista> (solicitud);
Console.ReadKey ();
}
}
}

Para realizar una solicitud POST con RestSharp, puede usar el siguiente código:

Solicitud RestRequest = nueva RestRequest ("Predeterminado", Método.POST);
request.AddJsonBody ("Robert Michael");
respuesta var = cliente. Ejecutar (solicitud);

RestSharp está disponible en varias plataformas .NET, que es una de las razones por las que es tan popular. La capacidad de deserialización automática de RestSharp también es notable. Puedes aprender más sobre RestSharp en GitHub.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *