3 puntos por kunggom 2023-01-11 | 1 comentarios | Compartir por WhatsApp

Para quienes tienen que desarrollar y dar mantenimiento a aplicaciones relacionadas con los servicios en la nube de Microsoft 365 que ofrece Microsoft, hay algo que prácticamente no se puede evitar: la Microsoft Graph API. Para quienes no sepan bien qué es, se trata de una API RESTful que permite acceder de forma unificada a todos los recursos en la nube que ofrece MS. Microsoft también ofrece el Graph SDK en algunos lenguajes para usar esta API de manera más cómoda.

El problema era que probar las partes que usan esta API resultaba bastante complicado. Donde más lo noté fue en los casos en que Graph API aplicaba rate limit y devolvía una respuesta 429 Too Many Requests. Si usas Graph SDK, cuando recibes un código de respuesta 429 por throttling, hace reintentos automáticamente según el valor de Retry-After del encabezado de respuesta, pero a veces era mejor fallar rápido sin reintentar, o aplicar una política distinta a la predeterminada. El problema es que no había una forma adecuada de probar estos casos en el entorno de desarrollo, así que me pasó que recién después de desplegar la primera versión del producto me di cuenta de que había que cambiar la política predeterminada de reintentos de Graph SDK, y lo corregí en una versión posterior.

Microsoft también era consciente de esto hasta cierto punto, así que agregó una función para simular respuestas con código 429 añadiendo el parámetro test429=true a la URL de la solicitud de la API, pero tenía la limitación de que solo funcionaba en endpoints relacionados con SharePoint y OneDrive.
https://pnp.github.io/blog/post/…

En medio de todo esto, por fin apareció a comienzos de este año una herramienta muy bienvenida: Microsoft Graph Developer Proxy.
Es una herramienta que permite simular distintos valores de respuesta devueltos por Graph API y también reproducir con facilidad varios errores o situaciones de throttling. Además, las solicitudes que se prueban no salen del entorno local de desarrollo. Todavía está en una fase temprana de desarrollo, pero dicen que la versión oficial saldrá dentro de este año. Al menos para quienes trabajan en este tipo de tareas, la aparición de una herramienta así es realmente muy conveniente.

1 comentarios

 
kunggom 2023-01-11

Como referencia, incluso antes de que apareciera esta herramienta, no es que no existiera ninguna forma de simular una situación en la que la Graph API devolviera 429. Sí había métodos, como usar herramientas como Fiddler. Pero era bastante incómodo.

Según el README, la herramienta presentada arriba fue creada por alguien llamado Waldek Mastykarz en un hackatón del año pasado (2022), y si revisan una entrada antigua (2018) de su blog, ahí presenta cómo simular con Fiddler una situación en la que la API de SharePoint devuelve 429.
https://blog.mastykarz.nl/simulating-throttling-sharepoint/