> 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-post.md).

# REST API - Post

Esta función envía solicitudes POST con JSON a una dirección de servidor HTTP y devuelve la respuesta del servidor. Está diseñada para integrarse con APIs REST externas manteniendo la interfaz de usuario receptiva.

## 📥 Entradas <a href="#inputs" id="inputs"></a>

`Enable Condition` — Señal lógica que inicia una solicitud POST cuando es True.

`Server Address` — Texto con la URL completa del endpoint del servidor (usar la URL completa que comience con http\:// o https\://).

`Response Data ID` — Nombre de clave opcional para extraer un campo específico de una respuesta JSON.

`Post Data` — Carga útil genérica que se enviará como JSON en el cuerpo de la solicitud.

## 📤 Salidas <a href="#outputs" id="outputs"></a>

`Status Code` — Código de estado HTTP devuelto por el servidor.

`Error` — Mensaje de error o motivo cuando la solicitud falla.

`Response` — Cuerpo de la respuesta del servidor o el valor extraído si se proporcionó `Response Data ID`.

## 🕹️ Controles <a href="#controls" id="controls"></a>

`Timeout (s)` — Número de segundos a esperar antes de que la solicitud expire (ajustar según servidores lentos/rápidos).

## 🎨 Características <a href="#features" id="features"></a>

* Solicitudes asincrónicas: las operaciones POST se ejecutan en segundo plano para que la interfaz no se bloquee.
* Análisis de respuesta opcional: si proporcionas `Response Data ID`, el bloque intentará devolver ese campo específico del JSON de respuesta.
* Integración sencilla: acepta una carga útil genérica para enviar imágenes, números, texto o datos estructurados preparados por otros bloques.

## ⚙️ Mecanismo de ejecución <a href="#running-mechanism" id="running-mechanism"></a>

Cuando `Enable Condition` es True y se proporciona una `Server Address` válida, el bloque envía una solicitud POST con la carga `Post Data`. La solicitud usa el `Timeout (s)` configurado y se ejecuta sin bloquear la UI. Cuando el servidor responde, el bloque actualiza sus salidas con `Status Code`, `Error` (si hay) y `Response` (o el campo seleccionado de la respuesta).

## 📝 Instrucciones de uso <a href="#usage" id="usage"></a>

1. Proporciona el endpoint objetivo en `Server Address` (incluyendo http\:// o https\://).
2. Conecta o prepara la carga en la entrada `Post Data` (usa otros bloques para construir datos estructurados si es necesario).
3. Usa una señal lógica en `Enable Condition` para disparar el envío (por ejemplo, un toggle manual o un bloque condicional).
4. Opcionalmente, establece `Response Data ID` para extraer un campo específico del JSON devuelto por el servidor.
5. Ajusta `Timeout (s)` si el servidor es lento o para evitar esperas largas.

## 💡 Consejos y buenas prácticas <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Usa `Logic Input` o `Rising Edge` para controlar cuándo se envía la solicitud (disparos únicos o control manual).
* Prepara cargas estructuradas con `Data to JSON` antes de conectarlas a `Post Data` para asegurar un JSON válido.
* Usa `String Input` para proporcionar la `Server Address` o `Number Input` para campos numéricos dentro de la carga.
* Registra o guarda respuestas con `CSV Export` o `Image Logger` (si la carga/respuesta contiene imágenes o marcas de tiempo).
* Combínalo con `REST API - Get` cuando necesites interacciones POST y GET con el mismo servicio (por ejemplo, enviar datos y luego consultar resultados).
* Incluye `Date-Time` o `Date-Time List` en la carga para marcar temporalmente las solicitudes.
* Usa `Debug Input` para inspeccionar la carga o la respuesta del servidor durante el desarrollo.

## 🛠️ Solución de problemas <a href="#troubleshooting" id="troubleshooting"></a>

* Sin respuesta / error de red: Verifica que `Server Address` sea correcta, accesible desde la máquina y que incluya el protocolo (http/https). Revisa firewall o configuraciones de red.
* Autenticación requerida: Asegúrate de que la API objetivo acepte POSTs no autenticados o agrega la autenticación que el servicio requiera fuera de este bloque (por ejemplo, mediante encabezados gestionados por el servidor).
* JSON inválido o respuesta inesperada: Usa `Data to JSON` para validar la carga y consulta la documentación del API para los nombres de campo esperados. Si solicitaste un `Response Data ID` y el campo falta, la salida `Response` puede quedar vacía.
* Timeouts: Incrementa `Timeout (s)` para endpoints lentos o revisa la carga del servidor. Si las solicitudes caducan con frecuencia, prueba el servicio por separado para confirmar su disponibilidad.
* Disparos repetidos: Si solo quieres enviar un POST por evento, usa `Rising Edge` para convertir una señal True contínua en un único disparo.

Si necesitas ejemplos de cómo encadenar este bloque con formateo de datos, registro o controles de disparo, combínalo con bloques como `Data to JSON`, `Logic Input`, `Rising Edge`, `CSV Export` y `REST API - Get` para patrones de integración comunes.
