Una API de REST es una interfaz que permite la comunicación entre sistemas siguiendo los principios de la arquitectura REST, utilizando solicitudes HTTP para acceder y manipular datos en formatos como JSON o XML.

¿Qué es una API de REST?
Una API de REST es una interfaz de programación de aplicaciones (API) que sigue los principios de diseño del estilo de la arquitectura REST. REST significa transferencia de estado representacional y consiste en un conjunto de reglas y recomendaciones para diseñar una API web.
¿Qué es una API?
Una API es un conjunto de definiciones y protocolos que se utiliza para desarrollar e integrar los sistemas de software de las aplicaciones.
Suele considerarse como el contrato entre el usuario y el proveedor de información, en el cual se establece el contenido que se necesita por parte del consumidor (la llamada) y el que requiere el productor.
El diseño de una API de servicio meteorológico podría requerir que el usuario escribiera un código postal y que el productor diera una respuesta en dos partes: la primera sería la temperatura máxima y la segunda sería la mínima.
En otras palabras, las API te permiten interactuar con una computadora o un sistema para obtener datos o ejecutar una función, de manera que el sistema comprenda la solicitud y la cumpla.
Puedes considerar la API como el mediador entre los usuarios o clientes y los recursos o servicios web que quieren obtener. Con ellas, las empresas pueden compartir recursos e información mientras conservan la seguridad, el control y la autenticación, lo cual les permite definir los accesos de cada usuario.
Otra ventaja de las API es que tú no necesitas saber cómo se recibe el recurso ni de dónde proviene.

REST
REST no es un protocolo ni un estándar, sino más bien un conjunto de límites relacionados con la arquitectura. Los desarrolladores de las API pueden implementarlo de distintas maneras.
Cuando el cliente envía una solicitud a través de una API de RESTful, esta transfiere una representación del estado del recurso requerido a quien lo haya solicitado o al extremo. La información se entrega por medio de HTTP en uno de estos formatos: JSON (JavaScript Object Notation), HTML, XLT, Python, PHP o texto sin formato. JSON es el formato de archivo más conocido, ya que tanto las máquinas como las personas pueden comprenderlo, y no depende de ningún lenguaje, a pesar de que su nombre indique lo contrario.
Asimismo, es necesario tener en cuenta otro aspecto: los encabezados y los parámetros también son importantes en los métodos HTTP de la solicitud HTTP de la API de RESTful.
Ya que contienen información de identificación esencial sobre los metadatos, la autorización, el identificador uniforme de recursos (URI), el almacenamiento en caché, las cookies y otros elementos de la solicitud. Hay encabezados de solicitud y de respuesta, y cada uno tiene sus propios códigos de estado e información de conexión HTTP.

Que hay que considerar?
Para que una API se considere de RESTful, debe tener:
- Una arquitectura cliente-servidor compuesta de clientes, servidores y recursos, con la gestión de solicitudes a través de HTTP.
- Una comunicación entre el cliente y el servidor, lo cual implica que no se almacena la información del cliente entre las solicitudes GET y que cada una de ellas es independiente y está desconectada del resto.
- Datos que puedan almacenarse en caché y optimicen las interacciones entre el cliente y el servidor.
- Una interfaz uniforme entre elementos que permita que la información se transfiera de manera estándar, para lo cual:
- Los recursos solicitados deben ser identificables e independientes de las representaciones enviadas al cliente.
- El cliente debe poder manipular los recursos a través de la representación que recibe, ya que esta contiene suficiente información para ello.
- Los mensajes autodescriptivos que se envíen al cliente deben contener la información necesaria para describir la manera de procesarla.
- Debe contener hipertexto o hipermedios, lo cual significa que cuando el cliente acceda a algún recurso. Tiene que poder utilizar hipervínculos para buscar las demás acciones que se encuentren disponibles en ese momento.
- Un sistema en capas que organiza en jerarquías invisibles para el cliente cada tipo de servidores (los encargados de la seguridad, del equilibrio de carga, etc.) que participan en la recuperación de la información solicitada.
- El código disponible según se solicite (opcional), es decir, la capacidad para enviar códigos ejecutables del servidor al cliente cuando se requiera, lo cual amplía las funciones del cliente.
Si bien la API de REST debe cumplir todos estos parámetros, resulta más fácil de usar que un protocolo definido previamente, como SOAP, el cual tiene requisitos específicos, como los mensajes XML y el cumplimiento de las operaciones y la seguridad integrados, que lo hacen más lento y pesado.

Fuente: Redhat
Ingeniería en Sistemas Computacionales
Más noticias sobre Ingeniería en Sistemas Computacionales…
