Mejoras en el Cliente HTTP de GitHub: Manejo de Repositorios Vacíos y Construcción de Consultas de Búsqueda

Introducción

Este post detalla mejoras realizadas en el cliente HTTP de GitHub del proyecto devlog-ist/landing. El foco principal es mejorar la robustez de las pruebas y la correcta construcción de las consultas de búsqueda. Estas mejoras son cruciales para garantizar que la aplicación interactúe de manera eficiente y precisa con la API de GitHub.

El Desafío

Anteriormente, las pruebas del cliente HTTP de GitHub fallaban al procesar repositorios vacíos. Además, existían problemas con la codificación de caracteres especiales en las consultas de búsqueda, lo que resultaba en errores al interactuar con la API de GitHub.

La Solución

Se implementaron las siguientes soluciones:

  1. Filtrado de repositorios vacíos: Se añadió un filtro para excluir repositorios con tamaño cero y forks al realizar las peticiones. Esto evita errores 409 al intentar procesar estos repositorios.
  2. Construcción de consultas de búsqueda mediante script pre-request: Se utiliza un script pre-request para construir la consulta de búsqueda, evitando la doble codificación de caracteres especiales como +, /, %20 y %3A que realizaba IntelliJ al generar las URLs.
// Ejemplo de script pre-request para construir la consulta
function buildSearchQuery(params) {
  let query = '';
  for (const key in params) {
    if (params.hasOwnProperty(key)) {
      query += `${key}:${params[key]} `; //Espacio intencional para separar los términos
    }
  }
  return query.trim();
}

const searchParams = {
  language: 'JavaScript',
  stars: '>1000'
};

const searchQuery = buildSearchQuery(searchParams);
console.log(searchQuery); // language:JavaScript stars:>1000

El script anterior muestra cómo se puede construir una consulta de búsqueda dinámicamente, evitando problemas de codificación de caracteres especiales en la URL.

Decisiones Clave

  • Evitar repositorios vacíos: Filtrar los repositorios sin contenido mejora la estabilidad de las pruebas y reduce errores innecesarios.
  • Centralizar la construcción de queries: Usar scripts pre-request para la creación de queries asegura una codificación correcta y consistente.

Resultados

  • Las pruebas del cliente HTTP de GitHub son ahora más robustas y confiables.
  • Se evitan errores relacionados con la doble codificación de caracteres especiales en las consultas de búsqueda.

Lecciones Aprendidas

Es fundamental validar los datos de entrada y manejar los casos límite, como repositorios vacíos, para garantizar la robustez de las aplicaciones que interactúan con APIs externas. Asimismo, es importante controlar la codificación de las URLs al construir las consultas para evitar errores inesperados.

Mejoras en el Cliente HTTP de GitHub: Manejo de Repositorios Vacíos y Construcción de Consultas de Búsqueda
Gerardo Ruiz

Gerardo Ruiz

Author

Share: