Hace tiempo que no publicaba nada y me pareció una buena idea repasar a que estamos llamando API y más precisamente a un API REST. Cuáles son las consideraciones que debemos tener en cuenta al momento de crearla y finalmente cuáles son las herramientas que Net Core nos provee para desarrollarla.
El objetivo principal de este grupo de artículos es para los desarrolladores que recién están dando sus primeros pasos puedan comprender de una manera simple y directa que es un API y cómo hacer una implementación completa utilizando Net Core. Desarrolladores más experimentados pueden tomar esto como una guía/checklist o mejor aún ayudarme con posibles olvidos, correcciones o lo que deseen aportar para ayudar a los que recién comienzan 💪🤙
¿Qué es un API?
Antes de comenzar a tirar código como bien techies que somos sentemos una base sobre lo que entendemos que es un API.
API: Interfaz de programación de aplicaciones o bien en inglés Application programming interface.
Ya solo con el nombre nos está dando una pista, es un interfaz para interactuar con componentes de un software sin necesidad de conocer su implementación concreta. Entonces, es una abstracción para el desarrollador que utiliza el API. Toda API provee un contrato donde estipula la forma en que se la puede utilizar.
¿Dónde podemos ver ejemplos de APIs?
Hay muchos ejemplos de APIs, veamos algunos:
- Net Core y C# proveen un API con el cual desarrollamos las aplicaciones
- Google Maps nos provee un API con el cual podemos insertar su mapa en nuestra aplicación
- Hay APIs web públicas para por ejemplo obtener el clima de una ciudad o realizar conversiones de moneda e integrarlas en nuestras aplicaciones
- Amazon, eBay o Mercado Libre proveen un API público de búsqueda para su catálogo
- Los sistemas operativos proveen APIs para que sus componentes internos puedan interactuar
- Kubernetes provee un API para su administración
Como se puede ver, hay muchos tipos de APIs. Algunas son internas (como por ejemplo las del SOs o Net Core) y otras son para consumirlas remotamente (por ejemplo el API de clima). Son estas últimas las que nos vamos a estar enfocando en estos artículos y son las que comúnmente los desarrolladores les llamamos API en el sentido amplio de la palabra.
Pregunta para conversar en los comentarios: El tablero del auto ¿es el API del vehículo hacia el conductor? 🤔
APIs Remotas
Hablamos que lo que nos interesa son las APIs remotas, excelente. Una API remota requiere que 2 puntos no conectados de manera directa necesiten comunicarse y el medio utilizado es la red (Internet). El caso más visible es el de Gmail donde el Frontend que se ejecuta en el browser local de nuestra PC llama a una API remota localizada en los servidores en Google para buscar los emails. Se puede extender a comunicación entre sistemas y aplicaciones de cualquier índole diferentes que pertenezcan o no a una misma empresa.
Lo más común o la norma general es que la comunicación que mencionamos en el párrafo anterior (o llamadas a las APIs) se realice por medio del protocolo HTTP/HTTPs y podemos dividirlos de la siguiente manera:
- RPC (Remote Procedure Call), es la ejecución de una función de un proceso en una máquina de la red interna o de internet. Por lo general su forma de comunicación es binaria y existe desde antes del auge de Internet. Como variantes aparecieron XML-RPC y JSON-RPC. En los últimos años tomó mucho auge GRPC que convierte RPC a web nativo.
- SOAP (Simple Object Access Protocol), donde la comunicación está predefinida por medio de XML estándar y es la base de las arquitecturas SOA
- REST (REpresentational State Transfer), donde la comunicación se basa en HTTP y utiliza todos sus features para generar las APIs
Estas últimas, en específico, son las que nos vamos a enfocar. Cuando los devs hablan de APIs generalizamos la palabra a este tipo de API.
Pregunta para conversar en los comentarios: Cuando usamos el control remoto de la TV y cambiamos de canal. ¿Estamos llamando a una API remota? 🤔
Este artículo solo fue la introducción al mundo de las API.
Te invito a dejar tu comentario sobre las preguntas que aparecieron a lo largo del artículo y vamos conversando entre todos 😀💪
Top comments (0)