¿qué es REST?
muchos servicios de acceso público exponen una API REST que permite una amplia gama de aplicaciones, desde interfaces de usuario web hasta integración y sincronización de sistemas back-end. Entonces, ¿qué es exactamente REST y qué hace que una API RESTful?,
REST – REpresentational State Transfer
técnicamente, REST significa REpresentational State Transfer (por lo que no es un acrónimo perfecto), y esencialmente significa que es una arquitectura destinada a transferir una representación de datos o estado del Servidor entre un cliente y un servidor.
hay algunos criterios detallados que se consideran necesarios para que una API sea RESTful, pero los más importantes son que la API sea:
- Stateless
esto significa que no hay sesión necesaria entre un cliente y un servidor., Los datos recibidos del servidor pueden ser utilizados por el cliente de forma independiente. Esto permite operaciones cortas y discretas, e incluso el almacenamiento en caché de datos sin conexión. Esto hace que REST sea un ajuste natural para las operaciones HTTP en las que las solicitudes están destinadas a ser singulares y de corta duración.
- Uniform
Las API REST están diseñadas para ser autodescritas, uniformes en su definición y cada operación separada por un endpoint o URL diferente. En términos prácticos, la mayoría de las API REST implementan operaciones clásicas CRUD (Create, Read, Update, Delete) contra un modelo de datos., Esta uniformidad permite a los desarrolladores aprender fácilmente el patrón de uso de cada API.
¿qué aspecto tiene una API REST?
debido a que está destinado a ser representativo, comencemos con el modelo de datos que está destinado a representar. Por ejemplo, si tenemos una aplicación de comercio en línea, nos gustaría definir las operaciones para la gestión de productos en nuestro catálogo, centrado en el modelo de Producto.
cada una de estas operaciones estaría vinculada a una combinación de una URL y un verbo HTTP., Para revisar, hay muchos verbos HTTP, pero la mayoría del desarrollo web utiliza solo los verbos GET Y POST para solicitar una URL o publicar datos de formulario, respectivamente. Pero REST usa más verbos HTTP para indicar al servidor qué tipo de operación está realizando el cliente.
la siguiente es una lista simplificada de URLs combinada con el verbo HTTP que usaríamos para exponer la API completa para administrar un catálogo de productos:
las operaciones y URLs anteriores son solo las operaciones básicas en un solo modelo., Las API REST también pueden admitir operaciones muy específicas u operaciones jerárquicas. Por ejemplo, si desea enviar una señal al servidor para cambiar el orden de un suministro de productos, podría exponer a una URL como esta:
/productos/{id}ordenar | POST | Señal al servidor que desea reordenar las cantidades de un producto {id}. El cuerpo del mensaje podría estar vacío, o contener un modelo de datos utilizado para instrucciones detalladas sobre la operación de reordenamiento., |
o, si desea sumergirse en el catálogo de productos y ejecutar una consulta para devolver una lista de todos los pedidos de un producto determinado, la API podría exponer una operación como esta:
/products/{id}/orders | get | dado un {ID} para un producto, devuelva todos los pedidos., |
por el contrario, puede exponer un punto final centrado en el orden que le permite enumerar todos los productos en el orden:
/orders/{ID}/Products | get | given an order {id} return all products in the order. |
¿Qué hace el servidor de datos parece?,
si bien no hay un requisito estricto sobre qué tipo de datos usa o devuelve una API REST, se ha convertido en un estándar de facto para las API REST basadas en web usar JSON como definición de datos.
esto se debe a que JSON es un formato nativo que todos los navegadores modernos pueden usar para representar objetos jerárquicos. Para obtener más información sobre JSON, Lea nuestro artículo ¿Qué es JSON?
para obtener más información sobre nuestros productos, comuníquese con su representante de ventas de la OEA al número gratuito en los Estados Unidos al 1-800-533-4994 o para consultas internacionales llame al 1-303-679-0898.