¿Qué son las APIs?
El término APIs hacer referencia a application programming interface, ¿pero qué quiere decir en realidad esto?
Cuando creamos una API lo que realmente hacemos es crear una interfaz para que otros programadores puedan comunicarse con nuestra aplicación, en definitiva que ellos puedan usar nuestro programa, un ejemplo simple puede ser el de AMAZON que tiene su respectiva API para los productos así el afiliado puede mostrarlos en su página web, esta es una RESTful API.
Hay miles de APIs que podemos usar ahí fuera para diferentes propósitos, por ejemplo google maps, Distance Matrix API que también es parte de Google Maps que calcula la distancia entre 2 puntos.
Distintos Modelos de Comunicación o Paradigmas
Ok vimos que ambas APIs mencionadas anteriormente usan REST API, pero no todo está hecho con el modelo REST o Restful, también tenemos SOAP, WebSockets y otros. A continuación una lista de los más usados:
- REST, RESTful
- SOAP
- Websockets
- graphQL
- RPC y gRPC
- Web Hook
- y Hay otra más llamada HTTP Streamming
Pero de todas estas las que más utilizaras sin duda es REST API, siguiéndole websockets, SOAP, WebHooksy GraphQL.
Utilizarás algunas de estas tecnologías sin dudas cuando uses una API de alguien más.
Que Tecnología usar para Tu API
La tecnología que uses dependerá de lo que desees realizar, por ejemplo para un chat WebSockets talvez sea la mejor opción, en cambio, si necesitas mucha flexibilidad la recomendación sería GraphQL, pero aun así no sería tan recomendable si la app es sencilla, mientras tanto para hacer un CRUD o ABM se recomendaría REST
Microservicios
Los microservicios son una arquitectura de diseño de software en la que una aplicación se compone de pequeños servicios independientes, cada uno de los cuales se centra en una tarea específica o en una función del negocio.
Cada microservicio es independiente de los demás y, por tanto, su desarrollo y escala también lo es.(cambios independientes)
Generalmente en estos se utiliza la tecnología REST para la comunicación entre los microservicios.