¿Que es una API?

Las API son mecanismos que permiten a dos componentes de software comunicarse entre sí mediante un conjunto de definiciones y protocolos. Por ejemplo, el sistema de software del instituto de meteorología contiene datos meteorológicos diarios. La aplicación meteorológica de su teléfono “habla” con este sistema a través de las API y le muestra las actualizaciones meteorológicas diarias en su teléfono.

¿Qué significa API?

API significa “interfaz de programación de aplicaciones”. En el contexto de las API, la palabra aplicación se refiere a cualquier software con una función distinta. La interfaz puede considerarse como un contrato de servicio entre dos aplicaciones. Este contrato define cómo se comunican entre sí mediante solicitudes y respuestas. La documentación de su API contiene información sobre cómo los desarrolladores deben estructurar esas solicitudes y respuestas.

¿Cómo funcionan las API?

La arquitectura de las API suele explicarse en términos de cliente y servidor. La aplicación que envía la solicitud se llama cliente, y la que envía la respuesta se llama servidor. En el ejemplo del tiempo, la base de datos meteorológicos del instituto es el servidor y la aplicación móvil es el cliente.

Las API pueden funcionar de cuatro maneras diferentes, según el momento y el motivo de su creación.

API de SOAP

Estas API utilizan el protocolo simple de acceso a objetos. El cliente y el servidor intercambian mensajes mediante XML. Se trata de una API menos flexible que era más popular en el pasado.

API de RPC

Estas API se denominan llamadas a procedimientos remotos. El cliente completa una función (o procedimiento) en el servidor, y el servidor devuelve el resultado al cliente.

API de WebSocket

La API de WebSocket es otro desarrollo moderno de la API web que utiliza objetos JSON para pasar datos. La API de WebSocket admite la comunicación bidireccional entre las aplicaciones cliente y el servidor. El servidor puede enviar mensajes de devolución de llamada a los clientes conectados, por lo que es más eficiente que la API de REST.

API de REST

Estas son las API más populares y flexibles que se encuentran en la web actualmente. El cliente envía las solicitudes al servidor como datos. El servidor utiliza esta entrada del cliente para iniciar funciones internas y devuelve los datos de salida al cliente. Veamos las API de REST con más detalle a continuación.
apis

¿Qué son las API de REST?

REST significa transferencia de estado representacional. REST define un conjunto de funciones como GET, PUT, DELETE, etc. que los clientes pueden utilizar para acceder a los datos del servidor. Los clientes y los servidores intercambian datos mediante HTTP.

La principal característica de la API de REST es la ausencia de estado. La ausencia de estado significa que los servidores no guardan los datos del cliente entre las solicitudes. Las solicitudes de los clientes al servidor son similares a las URL que se escriben en el navegador para visitar un sitio web. La respuesta del servidor son datos simples, sin la típica representación gráfica de una página web.

¿Qué beneficios ofrecen las API de REST?

Las API de REST ofrecen cuatro beneficios principales:

1. Integración
Las API se utilizan para integrar nuevas aplicaciones con los sistemas de software existentes. Esto aumenta la velocidad de desarrollo, ya que no hay que escribir cada funcionalidad desde cero. Puede utilizar las API para aprovechar el código existente.

2. Innovación
Sectores enteros pueden cambiar con la llegada de una nueva aplicación. Las empresas deben responder con rapidez y respaldar la rápida implementación de servicios innovadores. Para ello, pueden hacer cambios en la API sin tener que reescribir todo el código.

3. Ampliación
Las API presentan una oportunidad única para que las empresas satisfagan las necesidades de sus clientes en diferentes plataformas. Por ejemplo, la API de mapas permite la integración de información de los mapas en sitios web, Android, iOS, etc. Cualquier empresa puede dar un acceso similar a sus bases de datos internas mediante el uso de API gratuitas o de pago.

4. Facilidad de mantenimiento
La API actúa como una puerta de enlace entre dos sistemas. Cada sistema está obligado a hacer cambios internos para que la API no se vea afectada. De este modo, cualquier cambio futuro que haga una de las partes en el código no afectará a la otra.

¿Cuáles son los diferentes tipos de API?

Las API se clasifican tanto en función de su arquitectura como de su ámbito de uso. Ya exploramos los principales tipos de arquitecturas de API, ahora veamos el ámbito de uso.

API privadas
Estas son internas de una empresa y solo se utilizan para conectar sistemas y datos dentro de la empresa.

API públicas
Están abiertas al público y pueden cualquier persona puede utilizarlas. Puede haber o no alguna autorización y coste asociado a este tipo de API.

API de socios
Solo pueden acceder a ellas los desarrolladores externos autorizados para ayudar a las asociaciones entre empresas.

API compuestas
Estas combinan dos o más API diferentes para abordar requisitos o comportamientos complejos del sistema.

Hay varios tipos de REST APIs. Veamos los que usaremos en la mayoría de los casos.

  • GET — Obtener datos de la API. Por ejemplo, obtener un usuario de Twitter en función de su nombre de usuario.
  • POST — Empujar los datos a la API. Por ejemplo, crear un nuevo registro de usuario con nombre, edad y dirección de correo electrónico.
  • PUT — Actualizar un registro existente con nuevos datos. Por ejemplo, actualizar la dirección de correo electrónico de un usuario.
  • DELETE — Eliminar un registro. Por ejemplo, eliminar un usuario de la base de datos.


Estructura Basica de un API

Estructura basica



Async Await

Async/Await en Javascript es la manera de declarar funciones asícronas y poder trabajar con ellas de forma síncrona.

Un ejemplo sería hacer un fetch de un fichero json. ¿Cuanto va a tardar en traerse ese fichero? Pues depende, tardara más si el fichero es muy grande o dependiendo de la velocidad de la red, o incluso puede que no este disponible y no puedas traértelo.
El caso es que el tiempo que tarda es indeterminado. Pero imagínate que necesitas tener los datos que hay en ese fichero para continuar con la ejecución del código.

El fetch va a ser asíncrono, es decir que va a ejecutarlo e inmediatamente va a seguir con la ejecución de la siguiente linea. Para poder esperarlo lo que tenemos que hacer es declarar que la función donde se encuentra es asíncrona, y que debemos esperar a que el fetch responda para poder seguir con la ejecución de código.

Con esto estamos haciendo que la ejecución de nuestro código sea síncrono, porque va a esperar por el resultado de esa parte que es asíncrona para continuar. Y eso lo hacemos con Async/Await.

Fetch

Fetch API es una API web asíncrona que viene con JavaScript nativo y devuelve los datos en forma de promesas.

El fetch va a ser asíncrono, es decir que va a ejecutarlo e inmediatamente va a seguir con la ejecución de la siguiente linea. Para poder esperarlo lo que tenemos que hacer es declarar que la función donde se encuentra es asíncrona, y que debemos esperar a que el fetch responda para poder seguir con la ejecución de código.

En pocas palabras, Fetch API le permite hablar con otras API. Es una API web que utiliza promesas para realizar solicitudes de red a través del protocolo HTTP. Estructura basica

Manejo de errores, "try...catch"

Los errores de tiempo de ejecución ocurren cuando una aplicación tiene problemas para ejecutarse. Por ejemplo, su código podría intentar llamar a un método que no existe. Para detectar estos errores y aplicar algún procesamiento, puede usar la try-catchdeclaración. Estructura basica

Códigos de estado de respuesta HTTP

Los códigos de estado de respuesta HTTP indican si una solicitud HTTP específica se completó con éxito. Las respuestas se agrupan en cinco clases:

  1. Respuestas informativas ( 100- 199)

    Esta respuesta provisional indica que el cliente debe continuar con la solicitud o ignorar la respuesta si la solicitud ya finalizó.

  2. Respuestas exitosas ( 200- 299)

    La solicitud tuvo éxito. El significado del resultado de "éxito" depende del método HTTP:

  3. Mensajes de redirección ( 300- 399)

    La solicitud tiene más de una respuesta posible. El agente de usuario o usuario debe elegir uno de ellos.

  4. Respuestas de error del cliente ( 400- 499)

    El servidor no puede o no procesará la solicitud debido a algo que se percibe como un error del cliente (p. ej., sintaxis de solicitud mal formada, marco de mensaje de solicitud no válido o enrutamiento de solicitud engañoso).

  5. Respuestas de error del servidor ( 500- 599)
  6. El servidor se ha encontrado con una situación que no sabe cómo manejar.