Las APIs desde la trinchera

_MG_9579

Empezamos con las charlas simultáneas en APIdays Mediterranea. Después de la pausa para el café, Simon Wood de Holiday Extras nos ha hablado de herramientas para testear nuestras APIs.

Simon ha observado que la gente pasa mucho tiempo depurando las APIs: los programadores tienen que utilizar algo que ni han diseñado ni han escrito, y cuya documentación no siempre es suficiente.

Para un usuario de APIs puede resultar muy frustrante intentar entender la API que quiere usar para su trabajo, y esa frustración empieza en el momento de la selección. Por ejemplo, al buscar una API para el tiempo atmosférico, la oferta de APIs de este tipo puede ser abrumadora. Puede que elijas una inadecuada y que te genere muchas complicaciones luego en el proceso de desarrollo. O puede que te veas obligado a usar una API determinada, porque tu empresa trabaje con otra empresa que le ha ofrecido una API con la que interactuar, y no puedas ni siquiera conectarte a ella por problemas en la red.

Afortunadamente, gracias a los avances en herramientas disponibles hoy en día contamos con múltiples opciones. Así, para diagnosticar y resolver problemas de conexión podemos usar herramientas como TraceRoute o MTR.

El siguiente reto que tenemos que afrontar es cómo autenticarnos con la API con la que queremos comunicarnos, y este puede ser un auténtico campo de minas: actualmente las APIs usan una amplia variedad de herramientas de autenticación. Pero, por suerte para nosotros, algunas son de gran ayuda: RunScope ofrece un excelente generador de tokens OAuth 2.0, que podemos usar para hacer llamadas directas a la API, tan importantes a la hora de depurar. Así, bordeando nuestro propio código, podremos centrarnos en arreglar los problemas que tengamos con las APIs que intentamos utilizar, en vez de seguir confusos porque no sabemos si lo que no está funcionando es nuestro código o las interacciones con la API.

_MG_9600En cuanto a realizar llamadas directas a la API, hay muchas opciones disponibles. Muchos usan el navegador, pero si consumimos REST APIs puede ser difícil ejecutar las peticiones PUT, DELETE, y PATCH con un navegador. Hay otros que se sienten a gusto con la línea de comando y prefieren usar cURL, pero a menos que recuerdes todas las opciones para el comando cURL, esto puede ser todo un reto a superar. Personalmente, Simon se queda con Postman: es una herramienta esencial para cualquiera que quiera usar o escribir APIs.

Otras aplicaciones emergentes en el ámbito de las APIs que pueden resultar muy valiosas a la hora de escribir una son las Mock APIs y las Fake APIs. Cuando se te ha encargado desarrollar una API en un corto periodo de tiempo, y los que quieren utilizarla necesitan acceder a ella rápidamente, las Mock APIs te van a venir muy bien. Hay muchas por ahí: Mockable, Apiary o Mocky son algunas de ellas. Lo que te permiten hacer es discutir los valores devueltos por la API tanto con los que la escriben como con los que la utilizarán. Luego, puedes alojar una versión beta de los valores fake acordados y permitir a los desarrolladores de la aplicación web o móvil trabajar contra esos datos estáticos. De esta forma se acelera el proceso de entrega y se consigue que la API se desarrolle a la vez que la aplicación que la utiliza.

En general, el panorama de herramientas en torno a las APIs ha crecido considerablemente en los últimos años y ahora contamos con un buen montón de opciones que nos pueden ser muy útiles. Las APIs que escribimos y consumimos estarán siempre en evolución y en continuo cambio, por lo que es de esperar que se vayan depurando.

Fotografías de Mariano Cuesta

Leticia Martín-Fuertes

Licenciada en Filología Clásica, le apasiona todo lo que tenga que ver con la lengua y la tecnología. Ha trabajado como editora de diccionarios especializados multilingües y libros de economía. Actualmente trabaja como lingüista en la empresa de procesamiento del lenguaje natural Molino de ideas, adecentando textos lo más automáticamente posible que puede, y también es traductora, correctora y redactora especializada en tecnología y contenidos audiovisuales.