¿Qué es una API RESTful?

API Desarrollo Web

¿Qué es una API RESTful?

En el mundo e la tecnología un término muy utilizado es el de API, sin embargo el uso desmedido y en ocasiones sin real conocimiento de que es,  llega a crear una gran confusión y malentendidos sobre sus alcances reales y funciones, lo primero que se debe de saber es que API son unas siglas en inglés de  “Application Programming Interface”. 

Dicha API son un conjunto de funciones, métodos, reglas y procedimientos que cumplen una o muchas funciones con el fin de ser consumidas por otro software, en otras palabras, API proveen un nexo entre dos o más sistemas por medio de una interfaz que comparten un mismo protocolo de comunicación.

El objetivo principal al utilizar una API es poder realizar consultas de información de desarrollos previamente construidos en lugar de tener que crearlos desde 0, es por ello que resulta fundamental el saber cómo crearlas y a su vez consumirlas.

Un ejemplo claro es una aplicación de geolocalización, la cual requiere encontrar el punto exacto donde sus usuarios esperan un taxi, el desarrollo y captura de todos los mapas carreteros de una ciudad resultaría demasiado trabajo para una sola compañía, en este ejemplo la opción más sencilla es consumir los recursos de una base de datos con dichos mapas mediante un API

Al hablar de una API es común escuchar terminología especializada como lo es:

  • Interfaz: Es una capa de abstracción para que 2 sistemas interactúen, consumiendo los recursos.
  • Arquitectura de software: es la forma en que está diseñado un sistema como lo son los componentes, sus funciones, como se comunican entre ellos, entre otros.
  • Servicios Web: Sistema que permite la comunicación que se encuentra dentro de una red mediante el protocolo Http y Https principalmente utilizado para API remotas.
  • XML:  eXtensible Markup Language Formato de texto  para enviar datos, 
  • JSON: JavaScript Object Notation Formato para enviar datos (estándar)
image
Infografía: API

Los más importante protocolos API.

A medida que las API se han desarrollado en las ahora generalizadas API web, se han realizado muchos esfuerzos para simplificar su diseño y facilitar su implementación, con ello en mente surgen protocolos simplificados que facilitan las consultas conocidos como REST y SOAP.

REST: o por sus siglas en inglés Representational State Transfer, es un modo simplificado de arquitectura que permite recibir y enviar  datos entre un cliente y un servidor con ciertos estándares plenamente definidos, por lo que es posible recibir información en formatos como lo son JSON, XML o incluso en texto plano.

SOAP: o por sus siglas en inglés Simple Object Access Protocol, es un protocolo de transferir mensajes o de pequeñas cantidades de información por internet, los mensajes SOAP están escritos en formato XML y reciben solicitudes típicamente por el protocolo Http.

API RESTful

En palabras de Roy Fielding, todas aquellas API web que se adhieren a la arquitectura REST se denominan API RESTful siempre y cuando cumplan con 6 parámetros fundamentales dentro de su sistema:

  1. Arquitectura cliente-servidor: la arquitectura REST está compuesta por clientes, servidores y recursos, y administra las solicitudes a través de HTTP.
  2. Sin estado: ningún contenido de cliente se almacena en el servidor entre requerimientos. En su lugar, la información sobre el estado de la sesión está en posesión del cliente.
  3. Capacidad de caché: el almacenamiento en caché puede eliminar la necesidad de algunas interacciones cliente-servidor.
  4. Sistema en capas: las interacciones cliente-servidor pueden estar mediadas por capas adicionales. Estas capas pueden ofrecer funcionalidades adicionales, como equilibrio de carga, cachés compartidos o seguridad.
  5. Código de demanda (opcional): los servidores pueden extender la funcionalidad de un cliente transfiriendo código ejecutable.
  6. Interfaz uniforme: esta limitación es fundamental para el diseño de las API de RESTful e incluye 4 aspectos:
  • Identificación de recursos en requerimientos: los recursos se identifican en los requerimientos y se separan de las representaciones devueltas al cliente.
  • Administración de recursos mediante representaciones: los clientes reciben archivos que representan recursos. Estas representaciones deben tener la información suficiente como para poder ser modificadas o eliminadas.
  • Mensajes auto descriptivos: cada mensaje devuelto al cliente contiene la información suficiente para describir cómo el cliente debe procesar la información.
  • Hipermedios es el motor del estado de la aplicación: después de acceder a un recurso, el cliente REST debe ser capaz de descubrir mediante hipervínculos todas las otras acciones que están disponibles actualmente.

Algunos tipos de API

  • APi Servicios Web

Permiten el intercambio de información entre un servidor y un cliente, la comunicación se realiza mediante un protocolo http, o https, la información comúnmente es transportada en formatos JSON o XML.

  • API basada en bibliotecas 

Permite hacer uso de funciones, métodos o rutinas, todo a través de una biblioteca , la cual puede ser importada dentro de las aplicaciones consumiendo los recursos de la biblioteca.

  • API basadas clases.

Permiten utilizar clases ya definidas ,las cuales cuentan con una lógica de programación de tal forma agilizan el proceso de desarrollo de software, las cuales poseen atributos métodos etc,

  • Api de Sistemas Operativos

Este tipo de APi permite que los programas interactúan con el sistema, como el teclado, la pantalla, etc.

Deja un comentario