¿Qué es una API?
Última actualización
Última actualización
Interfaz de Programación de Aplicaciones (API), es un contrato que permite a un código comunicarse con otro código. Las API son los componentes básicos del software moderno porque permiten compartir recursos y servicios entre aplicaciones, organizaciones y dispositivos.
Las APIs ayudan a los desarrolladores a integrar funcionalidades y crear automatizaciones sin tener que reinventar la rueda constantemente.
Permiten a las empresas abrir sus productos para innovar más rápido.
Pueden ser por si mismas un producto.
En última instancia, todo el mundo se beneficia de las API, ya sea directa o indirectamente, porque las API hacen que los procesos sean más eficientes y conectan los servicios que amamos y en los que confiamos.
Un cliente que quiere sopa no va a la cocina a cocinar. Ni siquiera tiene que saber hacer sopa. Sólo tiene que saber pedir sopa al camarero y esperar que éste se la traiga.
Las API funcionan de la misma manera, pero los actores implicados reciben nombres diferentes. En lugar de sopa, el solicitante puede pedir datos o la ejecución de un servicio.
Client
El solicitante. Ex: Navegador, web app, mobile app
Cliente
API
Interfaz simplificada para actuar con el backend
Camarero
Server
El backend donde se procesa nuestra petición
Cocina
Aunque este curso se centrará en las API web, es importante saber que "API" puede aplicarse a una amplia gama de interfaces:
Hardware APIs: Interfaz para que el software se comunique con el hardware. Ej: Como la cámara de tu móvil se comunica con tu S.O.
Software Library APIs: Interfaz que consume código directamente de otra fuente de código. Ej: Importar métodos de una librería en tu app.
Web APIs: Interfaz de comunicación entre código fuente a través de la red.
Existen varios tipos de construcción y maneras de consumir una API.
REST (Representational State Transfer)
GraphQL
WebSockets
Webhooks
SOAP (Simple Object Access Protocol)
gRPC (Google Remote Procedure Call)
MQTT (MQ Telemetry Transport)
Las APIs también varían en cuestión de quien puede acceder a ellas:
APIs Públicas (también conocidas como APIs Abiertas): Estas APIs pueden ser consumidas por cualquiera que tenga acceso a ellas.
APIs Privadas: Consumidas solo por la organización y no accesibles para todos los públicos.
APIs de Socios: Consumido entre una o mas organizaciones que tienen una relación establecida.
La API que utilizaremos en este curso será una API Pública, REST, Web.
Una plataforma API sirve para construir y utilizar APIs (por ejemplo, POSTMAN). Una plataforma API (simplifica cada paso del ciclo de vida de las API y agiliza la colaboración para que pueda crear mejores API más rápidamente y consumirlas con facilidad.
Trabajar con APIs, antes y ahora: cURL vs. Postman
Antes de que aparecieran las plataformas de API (postman), era una práctica común hurgar en las APIs con una herramienta en línea de comandos para hacer peticiones HTTP llamada cURL. Esta herramienta se sigue utilizando hoy en día, pero tiene sus limitaciones cuando se trata de colaborar y compartir.
curl
Ejemplo de una llamada usando curl
en una terminal.
curl https://api.github.com/users/postmanlabs
Funciona muy bien, pero una vez que haces la llamada, los datos de respuesta de la API se pierden en la terminal y tampoco tienes visibilidad de los metadatos de la respuesta sino añades más parámetros al comando ejecutado.
Aquí está la misma llamada hecha con la plataforma de APIs Postman. Postman muestra la respuesta con sangrías y colores limpios y te permite guardar, organizar y compartir tus peticiones. También puedes ver todos los componentes de la solicitud y la respuesta desglosados en pestañas y otros detalles útiles como el tiempo de respuesta y el código de estado.
Postman tiene la visión de un mundo en el que las API sean lo primero: un mundo en el que 100 millones de desarrolladores estén conectados a través de API, y en el que las API ocupen un lugar central como principales bloques de construcción. En el mundo de la API primero:
Si todo va bien, verás una respuesta del servidor en la mitad inferior de Postman.
Debería tener este aspecto: un cuerpo de respuesta JSON (JavaScript Object Notation) con un array de objetos libro. Puedes desplazarte hacia abajo para ver más libros.
Cuando hacemos una llamada HTTP a un servidor, especificamos un método de petición que indica el tipo de operación que vamos a realizar.
Algunos métodos de petición HTTP comunes corresponden a las operaciones CRUD mencionadas anteriormente. Puedes ver una lista de más métodos aquí.
GET
Obtener datos (Read)
POST
Enviar datos (Create)
PUT/PATCH
Actualizar datos (Update)
* PUT
sustituye un recurso entero, mientras quePATCH
hace una actualización parcial
DELETE
Eliminar datos (Delete)
Dado que en nuestra prueba estamos "obteniendo" libros y no modificando ningún dato, tiene sentido que hagamos una petición GET.
Esto son sólo convenciones, todo depende de cómo esté codificada la API. Para saber qué método utilizar, lea siempre la documentación de la API con la que esté trabajando.
Además de un método de solicitud, una solicitud debe incluir una URL de solicitud que indique dónde realizar la llamada a la API. Una URL de solicitud consta de tres partes:
un protocolo (como http:// o https://)
host (ubicación del servidor)
path (ruta en el servidor).
En la API REST de ejemplo, la ruta suele apuntar a una entidad de referencia, como "libros".
https://
library-api.postmanlabs.com
/books
Los códigos de estado son indicadores de si una solicitud ha fallado o ha tenido éxito. Los códigos de estado tienen convenciones. Por ejemplo, cualquier código de estado que empiece por "2xx" (una "respuesta de nivel 200") representa una llamada correcta. Familiarízate con otras categorías de códigos de estado:
Rango del código
Significado
Ejemplo
2xx
Success
200
- OK
201
- Created
204
- No content (silent OK)
3xx
Redirection
301
- Moved (path changed)
4xx
Client error
400
- Bad request
401
- Unauthorized
403
- Not Permitted
404
- Not Found
5xx
Server error
500
- Internal server error
502
- Bad gateway
504
- Gateway timeout