Te va a interesar!

6/recent/ticker-posts

APIs Síncronas vs Asíncronas: Qué son? Nos importan como testers?

APIs
 

Veo que muchos me preguntan sobre APIs, Microservices, APIs Síncronas y Asíncronas... faaaa, puede ser una ensalada terrible para un tester que viene de la Facultad de Ciencias Naturales y Museo y está trabajando por primera vez con software para pagarse el alquiler de su departamento en la ciudad de La Plata y... momento, suena demasiado específico, no? Puede que estuviese refiriéndome a mí mismo! 

En este artículo voy a explicarles qué es lo que diferencia estos dos tipos de API para que entiendan cuando hablen al respecto y, más importante aún, esto de soporte a sus tareas como testers.


APIs Síncronas.


El nombre ya de por si implica una sincronía, algo que pasa al mismo tiempo, como una coreo. Esto significa que, ante un request, devuelve inmediatamente una respuesta. Como si de un tango se tratase, los pasos van acompañados inequívocamente.

Esto también tiene un pequeño PERO que es lo que hace que muchas veces, desde el desarrollo, se opte por la asincronía: Las APIs Síncronas esperan hasta que la respuesta vuelve para devolver el control. Osea que, en una página web, esto puede ser bastante engorroso a veces porque no queremos tener al usuario colgado de una palmera mientras la ruedita gira eternamente para devolver los resultados de una búsqueda. 

Estas interfaces son las que van a ver, por ejemplo, con HTTP. Cuando ustedes hacen un request HTTP, la respuesta llega inmediatamente. Es el caso más sencillo y el que van a encontrar más seguido. Pero...qué pasa cuando aparece las APIs asíncronas?

APIs Asíncronas.


A veces, uno quiere mantener su aplicación funcional y no estar atado a la data que tenemos que mandar en una respuesta. En este caso, para evitar que todo explote al pedir un request algo que no está disponible todavía, se opta por las APIs asíncronas. Esto lo que va a hacer es procesar el pedido y responder una vez el recurso esté en condiciones de responder. 

Esto lo van a ver mucho en Javascript y, uno de los ejemplos que se me viene a la mente, es cómo Cypress y TestCafe manejan el encontrar los webelements en un DOM. Van a ver, cuando escriben el código y exploran qué hacen estas herramientas JS para Automatizar E2E, que hace llamadas asíncronas detrás de escenas para crear la "ilusión" de que siempre encuentra al elemento sin tener que poner una espera como normalmente configuramos en Selenium. 

Estos callbacks a los elementos esperan de forma asíncrona hasta que la página cargó como debía ser, el estado de la web app está como tenía que estar y ahí prosigue.

Otra ventaja es que devuelve el control mientras asíncronamente hace su trabajo.

Conclusión


Como ven, las APIs pueden contener conceptos algo complejos de entender al principio pero, analizando comportamientos y cómo se usan, podemos entender de qué va todo esto.

Espero les resultase útil y didáctico el artículo y, junto a los otros de APIs, les sea de ayuda en esos momentos de duda! 

Publicar un comentario

0 Comentarios