🌐 Módulo: api
🇪🇸 Descripción
El módulo api permite realizar peticiones HTTP declarativas desde un host remoto, compatible con APIs REST (GET, POST, PUT, DELETE) y servicios SOAP (POST con cuerpo XML). Es útil para consultar servicios, enviar datos, validar integraciones o automatizar flujos externos.
La ejecución se realiza vía SSH y puede usar sudo si se requiere (become=true). El módulo permite parsear la respuesta como json o xml si se indica.
🧩 Argumentos disponibles
| Clave | Descripción |
|---|---|
method |
Método HTTP: get, post, put, delete, soap |
url |
URL completa del servicio a consultar |
headers |
Cabeceras HTTP separadas por coma (ej. Content-Type:application/json) |
body |
Cuerpo de la petición (JSON, XML, texto plano) |
output |
Ruta local donde guardar la respuesta (opcional) |
parse |
Tipo de parseo: json, xml o vacío para texto plano |
become |
Si se requiere sudo, usar become=true |
▶️ Ejemplos de uso
🔎 Consulta REST con parseo JSON
tasks:
- name: Obtener datos de usuario
module: api
args:
method: get
url: https://jsonplaceholder.typicode.com/users/1
headers: Accept:application/json
parse: json🧪 Consulta SOAP con cuerpo XML
tasks:
- name: Consulta SOAP de prueba
module: api
args:
method: soap
url: http://demo.mockable.io/soap
headers: Content-Type:text/xml
body: |
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns:getStatus xmlns:ns="http://demo.mockable.io/soap"/>
</soapenv:Body>
</soapenv:Envelope>
parse: xml🧠 Trazas esperadas (--debug)
🌐 [api] Ejecutando GET → https://jsonplaceholder.typicode.com/users/1
✅ [api] Respuesta JSON parseada correctamente
🌐 [api] Ejecutando POST → http://demo.mockable.io/soap
📦 [api] Cuerpo enviado:
<soapenv:Envelope>...</soapenv:Envelope>
✅ [api] Respuesta XML formateada correctamente📜 Changelog
Consulta el historial de cambios en changelog/api.md