Podemos definir API REST como un servicio web, por lo tanto, hace uso del protocolo HTTP. Con esta base empezamos a entender cómo funciona.
Pero ¿debemos usar un navegador para disfrutar de sus beneficios? No necesariamente, existen diferentes clientes que soportan este protocolo HTTP como aplicaciones, servicios, etc.
Sus Formas
A nivel general existen diferentes tipos de API, en este artÃculo nos enfocamos en API REST. Aunque también se clasifican en lo que vamos a llamar sus Formas:
- Privadas: Son de uso interno de una compañÃa o desarrollo, las cuales son usadas para transferir datos o conectar sistemas de la misma empresa o aplicación.
- Públicas: Estas son de uso externo, abiertas a cualquier desarrollo, aplicación o empresa.
- De Socios: Usadas en alianzas comerciales (empresas) y son de uso exclusivo de los miembros de estas.
- Compuestas: Es una combinación entre sistemas más complejos que permiten a los desarrolladores acceder a diversas plataformas, aplicaciones o servicios para acceder a datos y API de servicios.
Sus colores
Ya conocemos que existen varias ‘formas’ que nos permiten abordar a los diferentes sistemas de manera interna o abierta. Ahora, es importante conocer algunos de sus ‘colores’, los cuales nos abren la puerta a realizar todo tipo de llamados a la aplicación/desarrollo, como los cuatro que enumero a continuación:
- POST: Este método permite la creación de nuevos datos. Por ejemplo en ServiceDesk Plus, usamos este método para la creación de un requerimiento a partir de un correo electrónico. Capturamos la información del usuario que envÃa el correo, el asunto, la descripción y fecha de envÃo. Esta información se clasifica como solicitante, tÃtulo de la solicitud, descripción y fecha de creación respectivamente en un nuevo requerimiento.
- GET: Es el método usado para obtener información. Retomando el ejemplo anterior, con GET podemos consultar los detalles del requerimiento creado, como el nombre del técnico, la fecha de creación, el detalle del requerimiento o incluso el nombre del usuario. Esta información se podrÃa enviar a otra aplicación de reportes como Analytics Plus, para la creación de los KPIs de la empresa.
- PUT: Un método que permite editar un recurso/dato. En la misma secuencia de nuestro ejemplo: Imaginemos que ese requerimiento implica la solicitud de cambio de contraseña para un usuario, muy frecuente ¿cierto? Pues bien, ADManager Plus nos permite hacer todo tipo de operaciones en el directorio activo y es fácilmente integrable con ServiceDesk Plus. Por lo tanto, desde la misma ventana de la solicitud podrÃamos hacer un llamado de la API para cambiar la contraseña del usuario, según el requerimiento.
- DELETE: Este método es usado para eliminar un recurso/dato. Si cambiamos un poco el ejemplo que venimos usando y no fue un cambio de contraseña sino una baja de un usuario. Este llamado lo harÃa ServiceDesk Plus a ADManager Plus para eliminar el usuario del Directorio Activo.
Sus Sabores
Hemos visto un poco de las formas y colores, es el turno de los sabores. Para captar mejor su sabor, es necesario apoyarnos en el sentido del gusto al que llamaremos formato JSON. Quien hará que toda esta gama de formas y colores tengan sentido para nuestro paladar.
También podrás encontrar aplicaciones que usen API a través de formato XML. Pero en definitiva la estructura JSON es mucho más liviana, simple y mejor organizada.
JSON es el encargado de entregar la información de tal forma que la aplicación, desarrollo y desarrollador entiendan qué le están solicitando en cada llamado o cuál fue el resultado del mismo.
Es muy común ver que el resultado de un llamado venga en códigos, como por ejemplo 200 o 2000 que significa que fue un llamado exitoso, 400 que obtuvimos algún tipo de error, bien sea por mal estructurado el archivo JSON, falta de parámetros o también exceso de parámetros, 500 error interno del servidor, entre muchos otros.  Cada empresa, aplicación y desarrollo puede crear sus códigos para determinar diferentes tipos de éxito o error al realizar estos llamados.
Algunos de los beneficios obtenidos con API REST son la integración entre diversos sistemas sin importar si están desarrollados en diferentes lenguajes de programación, adaptabilidad a cambios o mejoras de tecnologÃa sin requerir reestructurar todo el código, automatización de tareas recurrentes, entre muchas otras.