📜 Changelog — api.sh

Este documento registra los cambios realizados en el módulo api.sh, utilizado para realizar llamadas declarativas a APIs REST y SOAP desde hosts remotos o locales.

This document records changes made to the api.sh module, used to perform declarative calls to REST and SOAP APIs from remote or local hosts.


🇪🇸 Historial de versiones

🛡️ v1.0.5 — [2025-09-24]

  • Encapsulado seguro del cuerpo con --data-raw para evitar errores de fragmentación
  • Validación condicional del campo json antes de intentar parsear con jq
  • Trazas adicionales: comando real ejecutado y cuerpo transmitido si DEBUG=true
  • Compatibilidad confirmada con estructuras anidadas, arrays, caracteres especiales y cuerpo vacío
  • Respuesta defensiva si la respuesta no contiene JSON parseable

🧩 v1.0.4 — [no publicada]

  • Corrección de errores de corchetes y comillas en cuerpos complejos
  • Compatibilidad con YAML multilinea (|) en body
  • Preparación para pruebas con reqres.in y httpbin.org

🧩 v1.0.3 — [2025-09-24]

  • Ejecución remota de curl y jq si el host no es localhost
  • Añadido -L para seguir redirecciones HTTP
  • Cabecera Accept: application/json forzada para asegurar parseo correcto
  • Compatibilidad estable con APIs públicas y RESTful
  • Mejora de trazabilidad en ejecución remota

🧩 v1.0.2 — [2025-09-24]

  • Corrección defensiva para evitar errores si body, output, parse, method o url no están definidos
  • Compatibilidad con entornos que usan set -u
  • Mejora de robustez en tareas simples como GET sin cuerpo ni salida

🧩 v1.0 — [2025-09-10]

  • Creación inicial del módulo api.sh
  • Soporte para métodos: GET, POST, PUT, DELETE, SOAP
  • Parámetros: url, method, headers, body, output, parse
  • Parseo opcional de respuesta como json o xml
  • Dependencias: curl, jq, xmllint