API REST. El Viaje al centro de una APP.
En el área de Desarrollo de software, es ampliamente utilizado el término API. API es una abreviatura de Application Programming Interfaces, que en español significa interfaz de programación de aplicaciones.
Una API proporciona un conjunto de reglas y especificaciones, que las aplicaciones pueden seguir para comunicarse entre ellas y dan como resultado un mecanismo útil para conectar dos aplicaciones entre sí.
Funcionamiento de la API
La API no es la parte visible de una página web o aplicación móvil; más bien, es el centro o núcleo del desarrollo que permite comunicar y conectar diferentes piezas del software, con el objetivo trabajar en conjunto y segmentos. A continuación, se describe un caso de uso de las API.
Las redes sociales son un caso bastante conocido por los consumidores de Internet. Imagine el caso donde un usuario visita su perfil y visualiza su fotografía, nombre, fecha de nacimiento, entre otros datos de interés. Estos datos no existen en la web de cada persona, máquina o dispositivo móvil; sino se almacenan en una base de datos lejana a la web. Es aquí donde entra en juego la API, pues ésta comunica la base de datos con la web, enviándole información del perfil del usuario a través de un canal proveído por la API. En este mismo ejemplo, si un usuario quisiera editar su información, la API proporcionaría otro canal para realizar esta acción.
A estos canales de comunicación, técnicamente se les conoce como servicios y estos nos permiten realizar operaciones de lectura, creación, actualización y destrucción de recursos, conocidos también como el CRUD, por sus siglas en inglés: Create, Read, Update y Delete. Los detalles de cada uno serán descritos en la siguiente sección.
Como se mencionó anteriormente, en el desarrollo de un sistema de software, se requiere de diversos componentes trabajando en conjuntos. Para que esto sea posible, se establecen estándares de comunicación y propiamente hablando de la API, patrones o arquitecturas para lograr este objetivo. Existen diversas arquitecturas de software, una de las más importantes es REST, en la cual enfocamos este articulo; sin embargo existen otras más como SOAP, XML-RPC, JSON-RPC, entre otras.
Qué es API REST
Ahora que conocemos qué es una API, hablemos de las arquitecturas en este tipo de desarrollo. API REST es un estilo de arquitectura de software que se utiliza para describir cualquier interfaz entre diferentes sistemas que utilicen HTTP. Este último es un protocolo de comunicación que permite la transferencia de datos en la web.
Aunque REST no es la única arquitectura que utiliza el protocolo HTTP, es una de las más utilizadas en desarrollo de software. SOAP, XML-RPC y JSON-RPC son también arquitecturas muy útiles, pero trabajan en condiciones diferentes a REST. La elección de arquitectura dependerá de las necesidades del negocio.
REST significa Representational State Transfer o en español transferencia de estado representacional, es un estándar para la comunicación y creación de servicios para transferir información entre un cliente y un servidor. Esta transferencia de información, nos permitirán manipular datos a través de peticiones realizadas por el cliente hacia la API; las cuales involucran al antes mencionado CRUD.
El CRUD tiene métodos bien definidos para realizar las operaciones, estos son los siguientes: GET para consultar, PUT para actualizar/reemplazar, POST para crear, PATCH para actualizar/modificar y DELETE para eliminar.
Otro aspecto muy importante de la API REST es el código de estado que se relaciona con el CRUD; sirve para informar al cliente cómo fue procesada cierta petición dentro de la API. Ya sea un GET, POST, PUT, PATCH o DELETE, la API responde con estos códigos que ayudan al cliente a decidir qué hacer una vez finalizada su petición. En resumen, los códigos de estado indican si se ha completado satisfactoriamente una solicitud específica.
Los códigos de estado se agrupan en cinco tipos: respuestas informativas, respuestas satisfactorias, redirecciones, errores de los clientes y errores de los servidores. A continuación se enlistan algunos de los más utilizados agrupados por tipo:
Respuestas informativas
- 100 Continue
Respuestas satisfactorias
- 200 OK
- 201 Created
Redirecciones
- 300 Multiple Choice
Errores de cliente
- 400 Bad Request
- 401 Unauthorized
- 402 Payment Required
- 403 Forbidden
- 404 Not Found
Errores de servidor
- 500 Internal Server Error
Otro punto muy importante de una API REST es que se puede consumir por diferentes clientes, sin importar el lenguaje de programación con el que se acceda a la API; pero respetando el protocolo definido para el intercambio de información. Si bien no todas las aplicaciones tendrán la necesidad de ser visualizadas en otro cliente que no sea web, trabajar con API proporcionará una preparación para cuando éste sea el requerimiento. Al crear nuestro servicio API REST, lo mas importante no es el lenguaje en el que se implemente, sino que las respuestas a las peticiones se hagan acorde al estándar HTTP.
Cierre
En este apartado se describieron los puntos más importantes de una API REST, que nos ayudan a conocer su funcionamiento interno, las reglas de la comunicación para utilizar los servicios y la flexibilidad de las mismas para ser utilizados desde cualquier computadora y/o dispositivo móvil.
En relación a estos puntos, se resalta que desarrollar software basado en una API proporciona ventajas significativas para quien desarrolla y consume el software, resumidas se exponen en el siguiente listado:
- Flexibilidad al momento de elegir el lenguaje de programación que puede ser diferente al utilizado en el cliente,
- la separación de cliente y servidor permite desarrollar proyectos de software segmentadamente y que en su momento generan estabilidad y portabilidad a cualquier plataforma y
- es posible reutilizar servicios ya existentes desarrollados por terceros e incorporarlos a nuestro negocio; por ejemplo, los sistemas de identificación de Facebook y la autenticación en los servicios de Google.
Por todos los puntos expuestos, se concluye que el uso de las API ha permitido construir relaciones con otros negocios y llegar a muchos más clientes, por lo que se han convertido en una herramienta clave para el crecimiento del negocio.