REST (Representational State Transfer, que significa Transferencia Representacional de Estado) es un modelo de arquitectura y no un lenguaje o tecnología de programación, que proporciona pautas para que los sistemas distribuidos se comuniquen directamente utilizando principios y protocolos web existentes sin necesidad de SOAP u otro protocolo sofisticado.
Los conceptos de REST se presentaron en las tesis doctoral de Roy Fielding en la década de los 2000, dónde el principio fundamental es utilizar el protocolo HTTP para la comunicación de datos.
Puedes encontrar en este artículo:
La arquitectura REST es simple y brinda acceso a los recursos para que el cliente REST acceda y represente los recursos en el lado del cliente. El estilo REST, URI o ID globales ayudan a identificar cada recurso.
Esta arquitectura utiliza varias representaciones de recursos para representar su tipo como XML, JSON, texto, imágenes,etc.
Vale la pena señalar que REST no se limita a registrar solicitudes y respuestas. También es posible insertar un nuevo registro o eliminar uno ya existente.
Existe un principio en REST llamado STATELESSNESS (sin estado), dónde el servidor no necesita saber en qué estado se encuentra el cliente y viceversa. Pero, ¿qué es un servidor y un cliente?
Cliente: Es el componente solicitante de un servicio que envía solicitudes de varios tipos de servicios al servidor.
Servidor: Es el componente que es el provedor de servicios y propociona continuamente servicios al cliente según las solicitudes.
En esta arquitectura el modelo, cliente-servidor ayuda en la separación de responsabilidades entre la interfaz de usuario y el almacenamiento de datos. Es decir, cuando se realiza una solicitud REST, el servidor envía una representación de los estados que se solicitaron.
No existe un límite tope en la cantidad de clientes que un solo servidor puede atender. Tampoco es obligatorio que el cliente y el servidor se encuentren en sistemas separados.
La comunicación entre el cliente y el servidor se lleva a cabo mediante el intercambio de mensajes utilizando un patrón de solicitud-respuesta. El cliente básicamente envía una solicitud de servicio y el servidor devuelve una respuesta.
REST requiere que un cliente realice una solicitud al servidor para enviar o modificar datos. Una solicitud consiste en:
En la aplicación REST, los métodos más utilizados son:
El método GET es el método más común, generalmente se usa para solicitar a un servidor que envíe un recurso;
El método POST está diseñado para enviar datos de entrada al servidor. En la práctica, a menudo se usa para admitir formularios HTML;
El método PUT edita y actualiza documentos en un servidor;
El método DELETE que, como su nombre lo indica, elimina un determinado dato o colección del servidor.
En este enlace encontrarás la lista completa de todos los métodos.
A cada respuesta que devuelve la aplicación REST se le envía un código que define el estado de la solicitud. Por ejemplo:
200 (OK) solicitud cumplida con éxito.
201 (CREADO) objeto o recurso creado con éxito.
204 (SIN CONTENIDO) objeto o recurso eliminado con éxito.
400 (MALA SOLICITUD) ocurrió un error en la solicitud (puede haber numerosas causas).
404 (NO ENCONTRADO) ruta o colección no encontrada.
500 (ERROR INTERNO DEL SERVIDOR), se ha producido algún error del servidor.
Estos son los principales, no obstante en este enlace encontrarás la lista completa del código de cada solicitud.
En este artículo presentamos el origen, conceptos y fundamentos principales de REST. Los cursos de programación de Alura pueden ayudarte a iniciarte, aprender y desarrollarte en tecnología y además, luego puedes profundizar y utilizar esta arquitectura en la gestión de estados de React por ejemplo.
Guilherme Lima
Es desarrollador de software con título en Sistemas de Información y experiencia en programación usando diferentes tecnologías como Python, Javascript y Go. Creador de más de 30 cursos en diferentes áreas de la plataforma enfocados en la formación de profesionales de TI, como Data Science, Python para la web con Django y Django Rest, juegos con Javascript, Infraestructura como código con Terraform y Ansible, Orientación a objetos con Go. Además es instructor de Dev Immersion en Alura.
Traducido por Luis Puig
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Puedes realizar el pago de tus planes en moneda local en los siguientes países:
País | |||||||
---|---|---|---|---|---|---|---|
Plan Semestral |
487.37
BOB |
69289.36
CLP |
307472.10
COP |
65.90
USD |
264.35
PEN |
1435.53
MXN |
2978.57
UYU |
Plan Anual |
738.82
BOB |
105038.04
CLP |
466107.17
COP |
99.90
USD |
400.74
PEN |
2176.17
MXN |
4515.32
UYU |
Acceso a todos
los cursos
Estudia las 24 horas,
dónde y cuándo quieras
Nuevos cursos
cada semana