> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/spanish/function-blocks/blocks-reference/input-output/communication/rest-api-get.md).

# REST API - Get

This function block performs a HTTP GET request to a web server and provides the result to the rest of your system. Use it to fetch JSON or plain-text data from REST endpoints and forward the response to other blocks for parsing, logging or storage.

## 📥 Entradas

* `Enable Condition`\
  Cuando es True, el bloque intentará obtener datos de la dirección del servidor indicada. Úselo para controlar cuándo se realizan las solicitudes.
* `Server Address`\
  URL completa del servidor o endpoint de la API a consultar (por ejemplo, <https://api.example.com/data>).
* `Response Data ID`\
  Clave opcional o ruta para extraer un valor específico de una respuesta JSON. Déjelo vacío para devolver toda la respuesta.

## 📤 Salidas

* `Status Code`\
  Código de estado HTTP devuelto por el servidor.
* `Error`\
  Mensaje de error cuando la solicitud falló o el servidor devolvió un error.
* `Response`\
  Cuerpo de la respuesta del servidor. Puede ser texto plano o un valor JSON parseado dependiendo del endpoint y del `Response Data ID`.

## 🕹️ Controles

* `Timeout (s)`\
  Tiempo máximo (en segundos) para esperar la respuesta del servidor antes de considerar la solicitud fallida. El valor por defecto es 2 segundos.

## 🎯 Características

* Ejecución no bloqueante: las solicitudes se realizan sin congelar la interfaz, de modo que otros bloques y controles siguen respondiendo mientras se espera la respuesta.
* Extracción opcional de respuesta: use `Response Data ID` para obtener un solo campo de una respuesta JSON cuando solo necesite un valor específico.
* Informe de errores: fallos comunes (errores de conexión, timeouts, códigos de estado no OK) se informan a través de la salida `Error` y el registro del sistema.
* Timeout ajustable: evita esperas largas que detengan el flujo ajustando `Timeout (s)`.

## 📝 Instrucciones de uso

1. Envíe una señal booleana a `Enable Condition` cuando desee ejecutar la solicitud.
2. Introduzca la URL del endpoint en `Server Address`.
3. Si el endpoint devuelve JSON y solo necesita un valor, complete `Response Data ID` con la clave correspondiente (déjelo vacío para recibir toda la respuesta).
4. Ajuste `Timeout (s)` si el servidor es lento o si prefiere un tiempo de fallo más corto.
5. Lea los resultados desde las salidas `Status Code`, `Error` y `Response` y conéctelos a bloques posteriores para parseo, guardado o alertas.

## 📊 Evaluación

Cuando está habilitado y se proporciona una dirección de servidor válida, el bloque emite una solicitud GET y actualiza sus salidas al llegar una respuesta o producirse un error. Si no hay respuesta disponible, se proporcionan valores por defecto para que los bloques aguas abajo puedan seguir operando.

## 💡 Tips and Tricks

* Para disparar una única solicitud cuando una condición pasa a True, combínelo con el bloque `Rising Edge` para convertir una señal True sostenida en un único disparo.
* Si necesita hacer un POST después de inspeccionar la respuesta de un GET, empareje este bloque con `REST API - Post`.
* Use `Parse Data Dictionary` o `Data to JSON` para extraer y formatear datos estructurados desde la salida `Response` antes de guardar o reenviar.
* Para registrar o guardar respuestas repetidas de la API, conecte las salidas a `CSV Export` o `SQL-DB Operations` para almacenamiento persistente.
* Use `Debug Input` para mostrar e inspeccionar las salidas crudas durante el desarrollo y la resolución de problemas.
* Para reenviar datos obtenidos a brokers de mensajes o sistemas IoT, conecte los resultados a `MQTT Publish`.

## 🛠️ Solución de problemas

* Problema: Sin respuesta o timeout.
  * Verifique la URL en `Server Address` y confirme el acceso de red al servidor. Aumente `Timeout (s)` para servidores lentos.
* Problema: La salida `Error` contiene un estado o mensaje HTTP.
  * Consulte `Status Code` para determinar si el servidor informó un error de cliente o servidor (4xx/5xx). Confirme el endpoint y cualquier autenticación requerida con el proveedor de la API.
* Problema: La respuesta es JSON pero no se encuentra el valor requerido.
  * Verifique que la clave o ruta en `Response Data ID` sea correcta. Si la estructura es anidada, use un bloque de parseo como `Parse Data Dictionary` para navegar el JSON.
* Problema: Las solicitudes se ejecutan con demasiada frecuencia o en momentos no deseados.
  * Controle el tiempo de las solicitudes con `Logic Input`, `Rising Edge` u otros bloques de control de flujo para asegurarse de que las solicitudes se envíen solo cuando sea necesario.
