Tutorial de servicios web RESTful: Ejemplo de API REST

โšก Resumen inteligente

Los servicios web RESTful proporcionan un enfoque ligero y sin estado para que las aplicaciones intercambien datos a travรฉs de HTTP utilizando verbos estรกndar. Exponen recursos a travรฉs de interfaces limpias. URLs, lo que permite una comunicaciรณn escalable e independiente de la plataforma entre clientes distribuidos, servidores, dispositivos mรณviles y plataformas modernas de nube e IA.

  • ๐Ÿ“Š Verbos bรกsicos: Los operadores GET, POST, PUT y DELETE se corresponden directamente con las operaciones de lectura, creaciรณn, actualizaciรณn y eliminaciรณn que se realizan en los recursos del servidor.
  • ๐Ÿงฉ Elementos clave: Los recursos, los verbos de solicitud, los encabezados, el cuerpo de la solicitud, el cuerpo de la respuesta y los cรณdigos de estado definen conjuntamente cada interacciรณn REST.
  • ๐ŸŒ Architectura: REST sigue un modelo cliente-servidor que se mantiene sin estado, por capas y compatible con la cachรฉ para lograr solicitudes repetidas mรกs rรกpidas y fiables.
  • ๐Ÿ› ๏ธ Implementaciรณn: ASP.NET con una plantilla de servicio WCF permite a los desarrolladores exponer puntos finales RESTful en Visual Studio con una configuraciรณn mรญnima.
  • ๐Ÿงช Pruebas: Los navegadores manejan las llamadas GET, mientras que Fiddler or Postman Enviar solicitudes POST, PUT y DELETE para verificaciรณn.
  • ๐Ÿ” Mejores Prรกcticas: HTTPS, autenticaciรณn por token, cรณdigos de estado significativos y control de versiones. URLs mantienen las API REST de producciรณn seguras y fรกciles de mantener.
  • ๐Ÿค– Integraciรณn de IA: OpenAI, Antrรณpico y Google Publicar API REST que den potencia a chatbots, agentes autรณnomos y flujos de trabajo de aprendizaje automรกtico.

Tutorial de servicios web RESTful

ยฟQuรฉ son los servicios web Restful?

Servicios web relajantes Es un servicio ligero, fรกcil de mantener y escalable, basado en la arquitectura REST. Un servicio web REST expone una API de su aplicaciรณn de forma segura, uniforme y sin estado al cliente que lo invoca. Este cliente puede entonces realizar operaciones predefinidas utilizando el servicio REST. El protocolo subyacente de REST es HTTP, y REST significa Transferencia de Estado Representacional.

En tรฉrminos sencillos, REST define una forma estรกndar de crear, leer, actualizar y eliminar recursos, como documentos, imรกgenes o registros de bases de datos, a travรฉs de la web. Dado que se basa en HTTP estรกndar, prรกcticamente cualquier lenguaje de programaciรณn o dispositivo puede consumir un servicio RESTful sin necesidad de herramientas especiales.

ยฟPor quรฉ utilizar servicios web RESTful?

Antes de explorar los detalles tรฉcnicos, conviene comprender por quรฉ REST se hizo tan popular. Los servicios web RESTful alcanzaron gran relevancia por las siguientes razones:

1. Lenguas y entornos heterogรฉneos โ€“ Esta es una de las razones fundamentales, que es la misma que hemos visto para JABร“N .

  • Permite que las aplicaciones web desarrolladas con distintos lenguajes de programaciรณn se comuniquen entre sรญ.
  • Con la ayuda de los servicios RESTful, estas aplicaciones web pueden residir en diferentes entornos; algunas podrรญan estar en Windowsy otros podrรญan estar en Linux.

En definitiva, independientemente del entorno, el resultado siempre debe ser el mismo: las aplicaciones deben poder comunicarse entre sรญ. Los servicios web RESTful ofrecen esta flexibilidad a las aplicaciones desarrolladas en diversos lenguajes de programaciรณn y plataformas.

La imagen a continuaciรณn muestra un ejemplo de una aplicaciรณn web que tiene el requisito de comunicarse con otras aplicaciones como Facebook, Twitter y Google.

Si una aplicaciรณn cliente tuviera que interactuar con sitios como Facebook y Twitter, los desarrolladores normalmente necesitarรญan saber en quรฉ lenguaje y plataforma se basaron esos sitios. Con base en esa informaciรณn, podrรญan escribir el cรณdigo de interfaz, pero este enfoque podrรญa resultar una pesadilla en cuanto a mantenimiento.

En cambio, Facebook, Twitter y Google Exponen su funcionalidad en forma de servicios web RESTful. Esto permite que cualquier aplicaciรณn cliente llame a estos servicios web mediante REST, independientemente de la tecnologรญa subyacente.

ยฟPor quรฉ utilizar servicios web RESTful?

2. El evento de los Dispositivos โ€“ Hoy en dรญa es necesario trabajar en todo Mรณvil dispositivos, ya sean telรฉfonos mรณviles, ordenadores portรกtiles o incluso sistemas de infoentretenimiento para automรณviles.

Imagรญnese el esfuerzo que supondrรญa programar aplicaciones para estos dispositivos que se comunicaran con aplicaciones web convencionales. Una vez mรกs, las API RESTful simplifican esta tarea porque, como se mencionรณ en el primer punto, no es necesario conocer la capa subyacente del dispositivo.

3. El evento de la Nube โ€“ Todo se estรก trasladando a la nube. Las aplicaciones se estรกn trasladando lentamente a sistemas basados โ€‹โ€‹en la nube, como por ejemplo: Azure or Amazon. Azure y Amazon Ofrece numerosas API basadas en la arquitectura REST. Por lo tanto, ahora es necesario desarrollar aplicaciones compatibles con la nube. Dado que todas las arquitecturas en la nube se basan en el principio REST, resulta lรณgico programar los servicios web con una arquitectura REST para aprovechar al mรกximo los servicios en la nube.

Elementos clave RESTful

Los servicios web REST han evolucionado mucho desde sus inicios. En 2002, el Consorcio Web publicรณ la definiciรณn de los servicios web WSDL y SOAP, lo que sentรณ las bases para la implementaciรณn de dichos servicios.

En 2004, el consorcio web tambiรฉn publicรณ la definiciรณn de un estรกndar adicional llamado RESTful. En los รบltimos aรฑos, este estรกndar se ha vuelto muy popular y ahora lo utilizan muchos de los sitios web mรกs populares del mundo, incluidos Facebook y Twitter.

REST es una forma de acceder a recursos ubicados en un entorno especรญfico. Por ejemplo, un servidor puede alojar documentos importantes, imรกgenes o vรญdeos. Todos estos son ejemplos de recursos. Si un cliente, como un navegador web, necesita alguno de estos recursos, debe enviar una solicitud al servidor. Los servicios REST definen una forma estรกndar de acceder a estos recursos.

Los elementos clave de una implementaciรณn RESTful son los siguientes:

  1. Recursos โ€“ El primer elemento clave es el recurso en sรญ. Supongamos que una aplicaciรณn web en un servidor tiene registros de varios empleados. Supongamos que URL de la aplicaciรณn web es https://demo.guru99.comAhora, para acceder a un recurso de registro de empleado a travรฉs de servicios REST, se puede emitir el comando https://demo.guru99.com/employee/1Este comando le indica al servidor web que proporcione los detalles del empleado cuyo nรบmero de empleado es 1.
  2. Solicitar verbos โ€“ Estos describen lo que quieres hacer con el recurso. Un navegador emite un verbo GET para indicarle al punto final que quiere obtener datos. Sin embargo, hay muchos otros verbos disponibles, incluidos POST, PUT y DELETE. Entonces, en el caso del ejemplo https://demo.guru99.com/employee/1El navegador web en realidad estรก emitiendo un verbo GET porque quiere obtener los detalles del registro del empleado.
  3. Solicitar encabezados โ€“ Estas son instrucciones adicionales que se envรญan con la solicitud. Pueden definir el tipo de respuesta requerida o los detalles de autorizaciรณn.
  4. Cuerpo de solicitud Estos son los datos que se envรญan con la solicitud. Normalmente, los datos se envรญan en el cuerpo de la solicitud cuando se realiza una solicitud POST al servicio web REST. En una llamada POST, el cliente le indica al servicio web REST que desea agregar un recurso al servidor. Por lo tanto, el cuerpo de la solicitud contendrรก los detalles del recurso que se debe agregar.
  5. Cuerpo de respuesta โ€“ Este es el cuerpo principal de la respuesta. Entonces, en nuestro ejemplo de API RESTful, si consultรกramos el servidor web a travรฉs de la solicitud https://demo.guru99.com/employee/1, el servidor web podrรญa devolver un documento XML con todos los detalles del empleado en el cuerpo de la respuesta.
  6. Cรณdigos de estado de respuesta Estos son los cรณdigos generales que se devuelven junto con la respuesta del servidor web. Un ejemplo es el cรณdigo 200, que normalmente se devuelve cuando no hay ningรบn error al enviar una respuesta al cliente.

Mรฉtodos relajantes

El diagrama que aparece a continuaciรณn muestra la mayorรญa de los verbos (POST, GET, PUT y DELETE) y un ejemplo de API REST que ilustra su significado.

Supongamos que tenemos un servicio web RESTful definido en la ubicaciรณn https://demo.guru99.com/employeeCuando el cliente realiza una solicitud a este servicio web, puede especificar cualquiera de los verbos HTTP habituales: GET, POST, DELETE y PUT. A continuaciรณn se muestra lo que sucederรญa si el cliente enviara los verbos correspondientes.

  1. PUBLICAR โ€“ Esto se usarรญa para crear un nuevo empleado mediante el servicio web RESTful.
  2. โ€“ Esto se usarรญa para obtener una lista de todos los empleados que utilizan el servicio web RESTful.
  3. PUT โ€“ Esto se utilizarรญa para actualizar a todos los empleados mediante el servicio web RESTful.
  4. BORRAR โ€“ Esto se usarรญa para eliminar a todos los empleados que utilizan el servicio RESTful.

Ahora veamos desde la perspectiva de un solo registro. Digamos que hay un registro de empleado con el nรบmero de empleado 1. Las siguientes acciones tendrรญan sus respectivos significados.

  1. PUBLICAR โ€“ Esto no serรญa aplicable, ya que estamos obteniendo datos del empleado 1, que ya estรก creado.
  2. โ€“ Esto se usarรญa para obtener los detalles del empleado con el nรบmero de empleado 1 mediante el servicio web RESTful.
  3. PUT โ€“ Esto se utilizarรญa para actualizar los datos del empleado con el nรบmero de empleado 1 mediante el servicio web RESTful.
  4. BORRAR โ€“ Esto se utiliza para eliminar los datos del empleado con el nรบmero de empleado 1.

Mรฉtodos relajantes

Sosegado Architectura

Una aplicaciรณn o arquitectura considerada RESTful o de estilo REST tiene las siguientes caracterรญsticas.

1. El estado y la funcionalidad se dividen en recursos distribuidos. Esto significa que todos los recursos deben ser accesibles mediante los comandos HTTP habituales: GET, POST, PUT o DELETE. Asรญ, si alguien quisiera obtener un archivo de un servidor, podrรญa realizar una solicitud GET. Si quisiera subir un archivo al servidor, podrรญa realizar una solicitud POST o PUT. Finalmente, si quisiera eliminar un archivo del servidor, podrรญa realizar una solicitud DELETE.

2. La arquitectura es cliente/servidor, sin estado, por capas y admite almacenamiento en cachรฉ.

  • Cliente-servidor es la arquitectura tรญpica donde el servidor puede ser el servidor web que aloja la aplicaciรณn y el cliente puede ser tan simple como el navegador web.
  • Sin estado significa que el estado de la aplicaciรณn no se mantiene en REST. Por ejemplo, si elimina un recurso de un servidor usando el comando DELETE, no puede esperar que la informaciรณn de eliminaciรณn se pase a la siguiente solicitud.

Para asegurar que el recurso se haya eliminado, deberรก realizar una solicitud GET. Esta solicitud se utilizarรก para obtener primero todos los recursos del servidor y, posteriormente, verificar si el recurso se eliminรณ correctamente.

Principios y limitaciones de RESTFul

La arquitectura REST se basa en algunas caracterรญsticas que se detallan a continuaciรณn. Cualquier servicio web RESTful debe cumplir con estas caracterรญsticas para poder considerarse RESTful. Estas caracterรญsticas tambiรฉn se conocen como principios de diseรฑo que deben seguirse al trabajar con servicios basados โ€‹โ€‹en RESTful.

  1. RESTFul Cliente-Servidor

    Principio cliente-servidor RESTful

Este es el requisito fundamental de una arquitectura basada en REST. Significa que el servidor contarรก con un servicio web RESTful que proporciona la funcionalidad necesaria al cliente. El cliente envรญa una solicitud al servicio web del servidor. El servidor, entonces, puede rechazar la solicitud o procesarla y proporcionar una respuesta adecuada al cliente.

  1. Apรกtrida

El concepto de sistema sin estado implica que el cliente es responsable de proporcionar al servidor toda la informaciรณn necesaria. Esto es fundamental para que el servidor pueda procesar la respuesta correctamente. El servidor no debe conservar ningรบn tipo de informaciรณn entre las solicitudes del cliente. Se trata de una secuencia de preguntas y respuestas muy sencilla e independiente. El cliente formula una pregunta y el servidor la responde adecuadamente. Cuando el cliente formula otra pregunta, el servidor no recordarรก la secuencia anterior y deberรก responder la nueva pregunta de forma independiente.

  1. Cache

Principio de cachรฉ RESTful

El concepto de cachรฉ ayuda a solucionar el problema de la falta de estado descrito en el punto anterior. Dado que cada solicitud entre el servidor y el cliente es independiente, a veces el cliente puede volver a solicitar al servidor la misma informaciรณn, aunque ya la haya solicitado anteriormente. Esta solicitud se envรญa al servidor, que devuelve una respuesta, lo que incrementa el trรกfico en la red. La cachรฉ es un concepto implementado en el cliente para almacenar las solicitudes que ya se han enviado al servidor. Asรญ, si el cliente realiza la misma solicitud, en lugar de ir al servidor, accede a la cachรฉ para obtener la informaciรณn necesaria. Esto reduce la cantidad de trรกfico de red entre el cliente y el servidor.

  1. Sistema de capas

El concepto de sistema por capas implica que se puede insertar una capa adicional, como una capa de middleware, entre el cliente y el servidor que aloja el servicio web RESTful. (En la capa de middleware se crea toda la lรณgica de negocio. Esta puede ser un servicio adicional con el que el cliente interactรบa antes de realizar una llamada al servicio web). Sin embargo, la introducciรณn de esta capa debe ser transparente para no interferir en la interacciรณn entre el cliente y el servidor.

  1. Interfaz/Conforme uniformetract

Esta es la tรฉcnica fundamental sobre cรณmo deberรญan funcionar los servicios web RESTful. RESTful funciona bรกsicamente en la capa web HTTP y utiliza los verbos clave que se describen a continuaciรณn para interactuar con los recursos del servidor.

  • POST โ€“ Para crear un recurso en el servidor.
  • GET โ€“ Para recuperar un recurso del servidor.
  • PUT โ€“ Para cambiar el estado de un recurso o actualizarlo.
  • ELIMINAR โ€“ Para eliminar o borrar un recurso del servidor.

REST vs SOAP: Diferencias clave

Los desarrolladores suelen comparar REST con SOAP al diseรฑar un servicio web. Ambos permiten que las aplicaciones distribuidas se comuniquen, pero difieren notablemente en su filosofรญa. REST es un estilo arquitectรณnico que utiliza verbos HTTP simples y formatos ligeros como JSON, mientras que JABร“N es un protocolo estricto que se basa en sobres XML y una comunicaciรณn formaltract. La tabla que aparece a continuaciรณn resume las distinciones mรกs importantes.

Aspecto REST JABร“N
Tipo Archiestilo tectรณnico Protocolo estricto
Formato de datos JSON, XML, texto plano, HTML Solo XML
Logรญstica de transporte Solo HTTP HTTP, SMTP, TCP y otros
Estado Apรกtrida Sin estado o con estado
Rendimiento Mรกs rรกpido y mรกs ligero Mรกs pesado debido a la sobrecarga de XML
Mejores para API web, mรณviles y pรบblicas Aplicaciones empresariales que requieren seguridad estricta

En la prรกctica, REST es la opciรณn predeterminada para las API web y mรณviles pรบblicas porque es mรกs rรกpido y fรกcil de consumir, mientras que SOAP sigue siendo รบtil para sistemas empresariales que exigen seguridad integrada y una configuraciรณn formal.tracTs

Cree su primer servicio web Restful en ASP.NET

Ahora, en este tutorial de API REST, aprenderemos cรณmo crear un servicio web RESTful en ASP.NET.

Los servicios web se pueden crear en una variedad de lenguajes, y se pueden utilizar muchos entornos de desarrollo integrados para crear servicios basados โ€‹โ€‹en REST.

En este ejemplo de API RESTful, crearemos nuestra aplicaciรณn REST en .NET usando Visual Studio. Tendremos un servicio web RESTful que trabajarรก con el siguiente conjunto de datos.

El conjunto de datos que se muestra a continuaciรณn representa un ejemplo de API REST de una empresa que expone los tutoriales que tiene en funciรณn del Tutorialid.

Tutorialid Nombre del tutorial
0 Matrices
1 colas
2 Stacks

En nuestro ejemplo del tutorial de API REST, vamos a implementar los verbos RESTful que se muestran a continuaciรณn.

  1. OBTENER Tutorial โ€“ Cuando un cliente invoca esta API RESTful, recibirรก el conjunto completo de tutoriales disponibles en el servicio web.
  2. OBTENER Tutorial/Tutorialid โ€“ Cuando un cliente invoca esta API RESTful, se le proporcionarรก el nombre del tutorial en funciรณn del Tutorialid enviado por el cliente.
  3. POST Tutorial/Nombre del tutorial Cuando un cliente invoca esta API RESTful, envรญa una solicitud para insertar un nombre de tutorial. El servicio web agrega entonces el nombre del tutorial enviado a la colecciรณn.
  4. ELIMINAR Tutorial/Tutorialid Cuando un cliente invoca esta API RESTful, envรญa una solicitud para eliminar un TutorialName basรกndose en el TutorialID. El servicio web elimina entonces el nombre del tutorial enviado de la colecciรณn.

Sigamos los pasos que se indican a continuaciรณn para crear nuestro primer servicio web RESTful, que lleva a cabo la implementaciรณn descrita anteriormente.

Cรณmo crear su primer servicio web relajante

Paso 1) Crea un nuevo proyecto.
El primer paso es crear un vacรญo. asp.net Aplicaciรณn web. Desde Visual Studio 2013, haga clic en la opciรณn de menรบ Archivo->Nuevo proyecto.

Crear un servicio web tranquilo

Una vez que haga clic en la opciรณn Nuevo proyecto, Visual Studio le mostrarรก otro cuadro de diรกlogo para elegir el tipo de proyecto e ingresar los detalles necesarios. Esto se explica en el siguiente paso.

Paso 2) Ingrese el nombre y la ubicaciรณn del proyecto.

  1. Asegรบrese de elegir primero el C# Plantilla web de la aplicaciรณn web ASP.NET. El proyecto debe ser de este tipo para crear un proyecto de servicios web. Al seleccionar esta opciรณn, Visual Studio realizarรก los pasos necesarios para agregar los archivos requeridos para cualquier aplicaciรณn web.
  2. Dale un nombre a tu proyecto, que en nuestro caso es โ€œWebservice.RESTโ€.
  3. Asegรบrese de indicar la ubicaciรณn donde se almacenarรกn los archivos del proyecto.

Crear un servicio web tranquilo

Una vez finalizado el proceso, verรก el archivo del proyecto creado en el explorador de soluciones de Visual Studio 2013.

Crear un servicio web tranquilo

Paso 3) Cree el archivo del servicio web.
El siguiente paso es crear el archivo de servicio web que contendrรก el servicio web RESTful.

  1. Primero, haga clic con el botรณn derecho en el archivo del proyecto, como se muestra a continuaciรณn.

Crear un servicio web tranquilo

  1. En este paso,
    1. Haz clic con el botรณn derecho en el archivo del proyecto.
    2. Seleccione la opciรณn โ€œAgregar->Nuevo elementoโ€.

Crear un servicio web tranquilo

En el cuadro de diรกlogo que aparece, debe realizar lo siguiente.

  1. Seleccione la opciรณn Servicio WCF (habilitado para Ajax). Al elegir un archivo de este tipo, Visual Studio agrega un cรณdigo bรกsico que le ayuda a crear un servicio web RESTful. WCF significa Windows Comunicaciรณn FoundationWCF es una biblioteca para que aplicaciones de diversas plataformas (o de la misma plataforma) se comuniquen a travรฉs de varios protocolos como TCP, HTTP y HTTPS. Ajax es asรญncrono. JavaScript y XML. AJAX permite que las pรกginas web se actualicen de forma asincrรณnica intercambiando pequeรฑas cantidades de datos con el servidor detrรกs de escena.
  2. A continuaciรณn, asigna un nombre al servicio, que en nuestro caso es TutorialService.
  3. Finalmente, haga clic en el botรณn Agregar para agregar el servicio a la soluciรณn.

Crear un servicio web tranquilo

Paso 4) Haz una configuraciรณn.
El siguiente paso es realizar un cambio de configuraciรณn para permitir que este proyecto funcione con servicios web RESTful. Esto requiere un cambio en el archivo llamado web.configEste archivo aparece en la misma ventana que el archivo del proyecto del servicio web. El archivo Web.config contiene todas las configuraciones necesarias para que la aplicaciรณn web funcione correctamente. El cambio realizado permite que la aplicaciรณn envรญe y reciba datos como un servicio web RESTful puro.

  1. Haz clic en el archivo Web.config para abrir el cรณdigo.

Crear un servicio web tranquilo

  1. Encuentra la lรญnea .

Crear un servicio web tranquilo

  1. Cambia la lรญnea a .

Crear un servicio web tranquilo

Paso 5) Agregue nuestro cรณdigo para su implementaciรณn.
El siguiente paso es agregar nuestro cรณdigo para la implementaciรณn. Todo el cรณdigo que aparece a continuaciรณn debe escribirse en el archivo TutorialService.svc.

  1. El primer paso consiste en aรฑadir cรณdigo para representar nuestros datos, que se utilizarรกn en nuestro programa. Tendremos una lista de variables de tipo cadena con los valores "Arrays", "Queues" y "Stacks". Esto representarรก los nombres de los tutoriales disponibles a travรฉs de nuestro servicio web de alojamiento.

Crear un servicio web tranquilo

namespace Webservice.REST
{
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class TutorialService
{
private static List<String> lst = new List<String>
(new String[] {"Arrays","Queues","Stacks"});

Paso 6) Defina el cรณdigo para nuestro mรฉtodo GET.
A continuaciรณn, definiremos el cรณdigo para nuestro mรฉtodo GET. Este cรณdigo tambiรฉn se encontrarรก en el mismo archivo TutorialService.svc y se ejecutarรก cada vez que accedamos al servicio desde nuestro navegador.

El mรฉtodo que se describe a continuaciรณn se utilizarรก para cumplir con el siguiente escenario.

  • Si un usuario desea obtener una lista de todos los tutoriales disponibles, deberรก escribir el siguiente cรณdigo para lograrlo.

Crear un servicio web tranquilo

[WebGet(UriTemplate = "/Tutorial")]

public String GetAllTutorial()
{
    int count = lst.Count;
    String TutorialList = "";
    for (int i = 0; i < count; i++)
        TutorialList = TutorialList + lst[i] + ",";
    return TutorialList;
}

Code Explicaciรณn:-

  1. La primera lรญnea de cรณdigo es la mรกs importante. Se utiliza para definir cรณmo podemos llamar a este mรฉtodo a travรฉs de un URL. Entonces, si el enlace a nuestro servicio web es http://localhost:52645/TutorialService.svc y aรฑadimos '/Tutorial' al URL, como en http://localhost:52645/TutorialService.svc/TutorialSe invocarรก el cรณdigo anterior. El atributo 'WebGet' es un parรกmetro que permite que este mรฉtodo sea un mรฉtodo RESTful, de modo que pueda invocarse mediante el verbo GET.
  2. Esta secciรณn de cรณdigo se utiliza para revisar nuestra lista de cadenas en la variable 'lst' y devolverlas todas al programa que realiza la llamada.

Paso 7) Devuelve la salida.
El cรณdigo que se muestra a continuaciรณn garantiza que si se realiza una llamada GET al servicio Tutorial con un ID de tutorial, se devolverรก el nombre del tutorial correspondiente en funciรณn de dicho ID.

Crear un servicio web tranquilo

[WebGet(UriTemplate = "/Tutorial/{Tutorialid}")]

public String GetTutorialbyID(String Tutorialid)
{
    int pid;
    Int32.TryParse(Tutorialid, out pid);
    return lst[pid];
}

Code Explicaciรณn:-

  1. La primera lรญnea de cรณdigo es la mรกs importante. Define cรณmo podemos llamar a este mรฉtodo a travรฉs de un URL. Entonces, si el enlace a nuestro servicio web es http://localhost:52645/TutorialService.svc y aรฑadimos '/Tutorial/{Tutorialid}' al URL, podrรญamos llamar al servicio web como http://localhost:52645/TutorialService.svc/Tutorial/1, por ejemplo. El servicio web devolverรญa entonces el nombre del tutorial que tuviera el ID de tutorial 1.
  2. Esta secciรณn de cรณdigo se utiliza para devolver el nombre del tutorial que tiene el ID de tutorial pasado al mรฉtodo web.
  • Por defecto, lo que hay que recordar es que lo que se le pasa al URL En el navegador hay una cadena.
  • Pero hay que recordar que el รญndice de nuestra lista tiene que ser un nรบmero entero, por lo que aรฑadimos el cรณdigo necesario para convertir primero el Tutorialid a un nรบmero entero.
  • Luego lo usamos para acceder a la posiciรณn del รญndice en nuestra lista y devolver el valor al programa que lo llamรณ.

Paso 8) Escribe el cรณdigo para el mรฉtodo POST.
El siguiente paso es escribir el cรณdigo para nuestro mรฉtodo POST. Este mรฉtodo se invocarรก cada vez que queramos agregar un valor de cadena a nuestra lista de tutoriales mediante el mรฉtodo POST. Por ejemplo, si quisieras agregar el nombre del tutorial "Pruebas de software", tendrรญas que usar el mรฉtodo POST.

Crear un servicio web tranquilo

[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "/Tutorial/{str}")]

public void AddTutorial(String str)
{
    lst.Add(str);
}

Code Explicaciรณn:-

  1. La primera lรญnea corresponde al atributo 'WebInvoke', que se ha asociado a nuestro mรฉtodo. Esto permite invocar el mรฉtodo mediante una llamada POST. Los atributos RequestFormat y ResponseFormat deben especificarse como JSON, ya que al enviar valores a un servicio web RESTful, estos deben estar en dicho formato.
  2. La segunda lรญnea de cรณdigo se utiliza para agregar el valor de cadena pasado a travรฉs de la llamada POST a nuestra lista existente de cadenas de tutoriales.

Paso 9) Agregue un mรฉtodo para manejar la operaciรณn DELETE.
Finalmente, agregaremos nuestro mรฉtodo para gestionar la operaciรณn DELETE. Este mรฉtodo se invocarรก siempre que queramos eliminar un valor de cadena existente de nuestra lista de tutoriales mediante el mรฉtodo DELETE.

Crear un servicio web tranquilo

[WebInvoke(Method = "DELETE", RequestFormat = WebMessageFormat.Json,
UriTemplate = "/Tutorial/{Tutorialid}", ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped)]

public void DeleteTutorial(String Tutorialid)
{
    int pid;
    Int32.TryParse(Tutorialid, out pid);
    lst.RemoveAt(pid);
}

Code Explicaciรณn:-

  1. La primera lรญnea corresponde al atributo 'WebInvoke', que se ha asociado a nuestro mรฉtodo. Esto permite invocar el mรฉtodo mediante la llamada DELETE. Los atributos RequestFormat y ResponseFormat deben especificarse como JSON, ya que los valores deben estar en este formato. Tenga en cuenta que el parรกmetro Method se establece en "DELETE". Esto significa que, cada vez que se ejecute el comando DELETE, se invocarรก este mรฉtodo.
  2. La segunda lรญnea de cรณdigo se utiliza para tomar el Tutorialid enviado a travรฉs de la llamada DELETE y posteriormente eliminar esa identificaciรณn de nuestra lista. (El Int32 La funciรณn del cรณdigo se utiliza para convertir el ID del tutorial de una variable de cadena a un nรบmero entero.

Ejecutando su primer servicio web Restful

Ahora que hemos creado nuestro servicio web completo en la secciรณn anterior, veamos cรณmo podemos ejecutar el servicio Tutorial para que pueda ser invocado desde cualquier cliente.

Para ejecutar el servicio web, siga los pasos que se indican a continuaciรณn.

Paso 1) Haga clic con el botรณn derecho en el archivo del proyecto: Webservice.REST.

Ejecuciรณn del servicio web Restful

Paso 2) Seleccione la opciรณn de menรบ "Establecer como proyecto de inicio". Esto garantizarรก que este proyecto se ejecute cuando Visual Studio ejecute la soluciรณn completa.

Ejecuciรณn del servicio web Restful

Paso 3) El siguiente paso es ejecutar el proyecto. Dependiendo del navegador predeterminado instalado en el sistema, el nombre del navegador correspondiente aparecerรก junto al botรณn de ejecuciรณn en Visual Studio. En nuestro caso, tenemos Google Chrome Apareciendo. Simplemente haga clic en este botรณn.

Ejecuciรณn del servicio web Restful

Salida:-

Cuando se ejecute el proyecto, puede navegar a la secciรณn TutorialService.svc/Tutorial y obtendrรก el resultado que se muestra a continuaciรณn.

Ejecuciรณn del servicio web Restful

En la salida anterior,

  • Como puede observar, el navegador invoca el verbo 'GET' y ejecuta el mรฉtodo 'GetAllTutorial' del servicio web. Este mรณdulo se utiliza para mostrar todos los tutoriales disponibles a travรฉs de nuestro servicio web.

Probando su primer servicio web Restful

En la secciรณn anterior, ya hemos visto cรณmo usar el navegador para ejecutar el verbo 'GET' e invocar 'GetAllTutorial'.

  1. Utilicemos ahora el navegador para ejecutar el siguiente escenario de caso de uso.

GET Tutorial/Tutorialid: cuando un cliente invoca esta API RESTful, se le proporcionarรก el nombre del tutorial en funciรณn del Tutorialid enviado por el cliente.

En su navegador, agregue la cadena /1 despuรฉs de la palabra Tutorial en el URLSi pulsas el botรณn de intro, obtendrรกs el siguiente resultado.

Prueba del servicio web Restful

Ahora verรก el resultado de "Colas", que corresponde al nรบmero 1 en nuestra lista de cadenas de tutoriales. Esto significa que el mรฉtodo 'GetTutorialbyID' se estรก invocando desde nuestro servicio web. Tambiรฉn muestra que el valor 1 se estรก pasando correctamente a travรฉs del navegador a nuestro servicio web y a nuestro mรฉtodo, y por eso obtenemos el valor correcto de "Colas" en el navegador.

  1. A continuaciรณn, consumamos nuestro servicio web ejecutando el siguiente escenario. Para ello, necesita instalar la herramienta llamada Fiddler, que es una herramienta gratuita que se puede descargar.

POST Tutorial/Tutorialname: Cuando un cliente invoca esta API RESTful, envรญa una solicitud para insertar un TutorialName. El servicio web agrega el nombre del tutorial enviado a la colecciรณn.

Ejecute el Fiddler Utilice la herramienta y siga los pasos que se indican a continuaciรณn.

  1. Dirรญgete a la secciรณn de composiciรณn. Aquรญ se crea la solicitud de datos que se puede enviar a cualquier aplicaciรณn web.
  2. Asegรบrese de que el tipo de solicitud sea "POST" y correcto. URL estรก siendo golpeado, lo cual en nuestro caso deberรญa ser http://localhost:52645/TutorialService.svc/Tutorial.
  3. Asegรบrese de que el Content-Type estรฉ marcado como application/json. Recuerde que nuestro mรฉtodo de solicitud POST en nuestro servicio web solo acepta datos en formato JSON, por lo que debemos asegurarnos de que esto se especifique al enviar una solicitud a nuestra aplicaciรณn.
  4. Finalmente, debemos ingresar nuestros datos. Recuerda que nuestro mรฉtodo POST acepta un parรกmetro llamado 'str'. Aquรญ especificamos que queremos agregar un valor llamado "Trees" a nuestra colecciรณn de nombres de tutoriales y asegurarnos de que estรฉ asociado a la variable 'str'.

Finalmente, solo haga clic en el botรณn Ejecutar en Fiddler. Esto enviarรก una solicitud al servicio web para que envรญe los datos โ€œรrbolesโ€ a nuestro servicio web mediante POST.

Prueba del servicio web Restful

Ahora, cuando navegamos al Tutorial URL Para mostrar todas las cadenas de nuestra lista de tutoriales, verรก que el valor "Trees" tambiรฉn estรก presente. Esto demuestra que la solicitud POST al servicio web se ejecutรณ correctamente y que se agregรณ correctamente a nuestra lista de tutoriales.

Prueba del servicio web Restful

  1. A continuaciรณn, consumamos nuestro servicio web ejecutando el siguiente escenario. Para ello, tambiรฉn necesitamos utilizar el Fiddler .

ELIMINAR Tutorial/Tutorialid: Cuando un cliente invoca esta API RESTful, envรญa una solicitud para eliminar un TutorialName basรกndose en el TutorialID. El servicio web elimina entonces el nombre del tutorial enviado de la colecciรณn.

Ejecute el Fiddler Utilice la herramienta y siga los pasos que se indican a continuaciรณn.

  1. Dirรญgete a la secciรณn de composiciรณn. Aquรญ se crea la solicitud de datos que se puede enviar a cualquier aplicaciรณn web.
  2. Asegรบrese de que el tipo de solicitud sea "DELETE" y correcto. URL estรก siendo golpeado, lo cual en nuestro caso deberรญa ser http://localhost:52645/TutorialService.svc/TutorialAsegรบrese de que el ID utilizado para eliminar una cadena en la lista se envรญe a travรฉs de URL como parรกmetro. En nuestro ejemplo REST, estamos enviando 1, por lo que esto eliminarรก el 2.nd elemento en nuestra colecciรณn, que es โ€œColasโ€.

Finalmente, solo haga clic en el botรณn Ejecutar en Fiddler. Esto enviarรก una solicitud al servicio web para ELIMINAR los datos โ€œColasโ€ de nuestro servicio web.

Prueba del servicio web Restful

Ahora, cuando navegamos al Tutorial URL Para mostrar todas las cadenas de nuestra lista de tutoriales, observarรก que el valor de "Colas" ya no estรก presente.

Esto demuestra que la solicitud DELETE al servicio web se ejecutรณ correctamente. El elemento en el รญndice nรบmero 1 de nuestra lista de cadenas del tutorial se eliminรณ correctamente.

Prueba del servicio web Restful

Mejores prรกcticas de API RESTful

Crear una API REST funcional es solo el primer paso; construir una que sea escalable y fรกcil de mantener requiere disciplina. Las prรกcticas que se describen a continuaciรณn ayudan a que tus puntos de acceso sean predecibles, seguros y fรกciles de usar para otros desarrolladores y agentes de IA.

  • Utilice sustantivos, no verbos, en URLs. Puntos finales como /empleados/1 son mรกs claros que /getEmployee?id=1, porque el verbo HTTP ya describe la acciรณn.
  • Devuelve cรณdigos de estado significativos. Envรญe 200 para รฉxito, 201 para un recurso creado, 400 para una solicitud incorrecta, 401 para acceso no autorizado, 404 para un recurso faltante y 500 para errores del servidor.
  • Versiona tu API. Agregar un segmento de versiรณn como por ejemplo /v1/ Esta ruta te permite evolucionar el servicio sin perjudicar a los clientes existentes.
  • Proteja todos los puntos finales. Utilice HTTPS, junto con claves API o tokens OAuth 2.0, y valide todos los datos de entrada.
  • Admite paginaciรณn y filtrado. Devolver colecciones grandes en pรกginas mantiene las respuestas rรกpidas y reduce la carga del servidor.

Seguir estas convenciones hace que la integraciรณn de su servicio web RESTful sea intuitiva, ya sea que el consumidor sea una aplicaciรณn mรณvil, un sistema asociado o un flujo de trabajo de IA automatizado.

Preguntas Frecuentes

REST es un estilo arquitectรณnico que utiliza verbos HTTP y formatos ligeros como JSON. SOAP es un protocolo estricto que se basa en sobres XML. REST es mรกs rรกpido, mรกs sencillo y mejor para clientes web y mรณviles, mientras que SOAP se adapta mejor a sistemas empresariales que requieren seguridad integrada.

Las API RESTful devuelven cรณdigos de estado HTTP estรกndar. El cรณdigo 200 confirma una solicitud exitosa, el 201 indica un recurso creado, el 400 informa una solicitud incorrecta, el 401 significa no autorizado, el 404 seรฑala un recurso faltante y el 500 indica un error del servidor durante el procesamiento.

Proteja sus API REST con HTTPS para el cifrado de la transmisiรณn, claves API o tokens OAuth 2.0 para la autenticaciรณn, control de acceso basado en roles para la autorizaciรณn, limitaciรณn de velocidad para prevenir abusos y validaciรณn estricta de la entrada. El registro de solicitudes facilita la auditorรญa y la respuesta a incidentes.

proveedores de IA como OpenAI, Anthropic y Google Se exponen puntos finales REST que aceptan solicitudes JSON y devuelven texto generado. Los desarrolladores envรญan solicitudes POST con claves API, y el servicio responde con la salida del modelo, lo que permite el uso de chatbots, agentes y sistemas de automatizaciรณn.

Sรญ. Los agentes de IA modernos utilizan llamadas a herramientas o funciones para invocar puntos finales REST durante una conversaciรณn. El agente selecciona un punto final, crea la carga รบtil JSON, envรญa la solicitud y lee la respuesta para planificar su siguiente acciรณn sin intervenciรณn humana.

Un navegador web puede probar las llamadas GET directamente. Para las solicitudes POST, PUT y DELETE, los desarrolladores utilizan herramientas como Fiddler or Postman, que te permite configurar encabezados, elegir un verbo e inspeccionar la respuesta.

Los servicios REST suelen intercambiar datos en JSON porque es un formato ligero y fรกcil de analizar. Tambiรฉn pueden usar XML, HTML o texto plano. El cliente y el servidor acuerdan el formato mediante los encabezados HTTP Content-Type y Accept.

Resumir este post con: