Desarrollo
CiberseguridadDesarrolloFotografíaLinkedin
  • 🌎Hello World
  • 🧔About me
  • Proyectos
    • 🛒Sistemas Supermercado
    • 🛒SAU Supermercado
    • App y Web Gestoría Online
    • Webs en Wordpress
    • Marketing Funnel
    • Cartelería digital
    • Gestión del Gas Butano
  • El anillo único
  • Gobierno del dato
  • Librería
  • Tienda en Shopify
  • Conversión Base de Datos
  • Web Circuito de Carreras
  • CONOCIMIENTOS
    • Métodos HTTP Request
    • Patrones de Diseño
      • Patrón de fábrica
      • Patrón Singleton
    • ¿Qué me hubiera gustado saber antes como Desarrollador?
      • Compilación
      • Deuda técnica
      • Refactorización del Código
    • ¿Qué es una API?
  • Apache Guacamole
  • Artículos
    • Scripts de compilación: el código invisible pero esencial
    • La deuda técnica: el costo oculto del desarrollo
Con tecnología de GitBook
En esta página
  • Interfaz de Programación de Aplicaciones
  • ¿Por qué son importantes las API's?
  • Tipos de APIs
  • Arquitecturas
  • API REST
  • Accesos
  • Plataforma API
  • Llamadas con API curl
  • Llamadas API con Postman
  • El mundo del paradigma "API First"
  • La respuesta de una API
  • Métodos de Solicitud (Request Methods)
  • Solicitar una URL (Request URL)
  1. CONOCIMIENTOS

¿Qué es una API?

AnteriorRefactorización del CódigoSiguienteApache Guacamole

Última actualización hace 3 días

Interfaz de Programación de Aplicaciones

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.

¿Por qué son importantes las API's?

  1. Las APIs ayudan a los desarrolladores a integrar funcionalidades y crear automatizaciones sin tener que reinventar la rueda constantemente.

  2. Permiten a las empresas abrir sus productos para innovar más rápido.

  3. 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

Tipos de APIs

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.

Arquitecturas

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)

API REST

Accesos

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.

Plataforma API

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.

Llamadas con API 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.

Llamadas API con Postman

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.

El mundo del paradigma "API First"

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:

La respuesta de una API

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.

Métodos de Solicitud (Request Methods)

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.

Solicitar una URL (Request URL)

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".

Protocolo
Host
Path

https://

library-api.postmanlabs.com

/books

Códigos de Respuesta del Servidor

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

Ciclo de Vida de una API de Software
Ejemplo de una API - Un restaurante digital
Salida por pantalla del comando cURL
Captura de pantalla de salida de muestra de una petición en POSTMAN
The API-First World Postman Captura
Captura de un Objeto JSON tras una llamada a una API por el método GET