Ir al contenido

Thing API

La API Thing representa objetos duraderos que cambian con el tiempo, como servidores, salas, sensores, servicios de red o tareas largas. Al crear un Thing se devuelve un thing_id; las actualizaciones, el archivado y la eliminación usan ese identificador.

POST /thing/create
POST /thing/update
POST /thing/archive
POST /thing/delete

El cuerpo de la petición debe ser JSON y los campos desconocidos se rechazan. Si un Gateway privado habilita PUSHGO_TOKEN, incluya Authorization: Bearer <token>.

EncabezadoRequeridoDescripción
Content-Type: application/jsonSolicitar formato del cuerpo.
Authorization: Bearer <token>Dependiente del GatewaySe requiere solo cuando un Gateway privado habilita PUSHGO_TOKEN.
/thing/create -> thing_id
|
+-> /thing/update can be called many times
|
+-> /thing/archive inactive but history remains
|
+-> /thing/delete removed or retired
CampoTipoRequeridoDescripción
channel_idstringID de Channel de destino.
passwordstringContraseña Channel, normalmente de 8 a 128 caracteres.
op_idstringNoClave de idempotencia; se genera y se devuelve si se omite.
ciphertextstringNoCarga útil de texto cifrado E2EE opcional.
RutaCampos comerciales requeridos
/thing/createobserved_at
/thing/updatething_id, observed_at
/thing/archivething_id, observed_at
/thing/deletething_id, observed_at
CampoTipoReglas
thing_idstringRequerido para actualizar, archivar y eliminar; no debe enviarse al crear.
titlestringRecomendado para crear; Actualmente, el Gateway no rechaza el title faltante.
descriptionstringOpcional; las cadenas vacías se consideran faltantes.
tagsstring[]Hasta 32 elementos, con un máximo de 64 caracteres cada uno, recortados y sin duplicados.
primary_imagestringURL opcional, máximo 2048 caracteres.
imagesstring[]Hasta 32 URL de imágenes, con un máximo de 2048 caracteres cada una.
created_atnumberCrear únicamente; vuelve a observed_at cuando se omite.
deleted_atnumberEliminar sólo; vuelve a observed_at cuando se omite.
observed_atnumberRequerido; Tiempo de observación para esta actualización de estado, milisegundos Unix.
external_idsobjectpatrón de clave [A-Za-z0-9_:.\-], clave <= 64; El valor es string o null.
location_type + location_valuestring + stringDeben presentarse juntos; El tipo es physical, geo, cloud, datacenter o logical.
attrsobjectParche de objetos; null quita una llave; no se permiten matrices; sólo un nivel de objeto anidado.
metadataobjectSólo valores escalares; clave <= 64, valor <= 512.
Ventana de terminal
curl -X POST https://gateway.pushgo.dev/thing/create \
-H "Content-Type: application/json" \
-d '{
"channel_id": "YOUR_CHANNEL_ID",
"password": "YOUR_CHANNEL_PASSWORD",
"title": "Home NAS",
"description": "Primary storage in the living room rack",
"observed_at": 1713750000000,
"tags": ["nas", "home"],
"location_type": "physical",
"location_value": "home/living-room",
"attrs": {
"online": true,
"disk_used": 0.72,
"temperature": 43.2
}
}'

Respuesta:

{
"success": true,
"data": {
"channel_id": "YOUR_CHANNEL_ID",
"op_id": "op-20260422-001",
"thing_id": "8a1fc4b3d9f04fd2857f92f66f7cc5d1",
"accepted": true
},
"error": null,
"error_code": null
}

Guarde el thing_id devuelto; actualizar, archivar y eliminar llamadas lo necesitan.

Ventana de terminal
curl -X POST https://gateway.pushgo.dev/thing/update \
-H "Content-Type: application/json" \
-d '{
"channel_id": "YOUR_CHANNEL_ID",
"password": "YOUR_CHANNEL_PASSWORD",
"thing_id": "8a1fc4b3d9f04fd2857f92f66f7cc5d1",
"observed_at": 1713750600000,
"attrs": {
"disk_used": 0.74,
"temperature": 44.1
}
}'

attrs es un parche. No es necesario enviar el estado completo cada vez. Para eliminar una clave, pase null.

{
"attrs": {
"temporary_alarm": null
}
}

El archivo es para objetos que ya no están activos pero que deben conservar su historial.

Ventana de terminal
curl -X POST https://gateway.pushgo.dev/thing/archive \
-H "Content-Type: application/json" \
-d '{
"channel_id": "YOUR_CHANNEL_ID",
"password": "YOUR_CHANNEL_PASSWORD",
"thing_id": "8a1fc4b3d9f04fd2857f92f66f7cc5d1",
"observed_at": 1713751200000,
"attrs": {
"online": false
}
}'

Utilice /thing/delete cuando se elimine o retire un objeto.

Ventana de terminal
curl -X POST https://gateway.pushgo.dev/thing/delete \
-H "Content-Type: application/json" \
-d '{
"channel_id": "YOUR_CHANNEL_ID",
"password": "YOUR_CHANNEL_PASSWORD",
"thing_id": "8a1fc4b3d9f04fd2857f92f66f7cc5d1",
"observed_at": 1713751800000,
"deleted_at": 1713751800000
}'

Thing representa un objeto persistente. Las alertas relacionadas pueden usar Message con thing_id; Los procesos relacionados pueden utilizar Event con thing_id.

EscenarioModelo
CPU NAS actual, temperatura, uso del discoThing
Advertencia de un disco en el NASMessage + thing_id
Copia de seguridad NAS de principio a finEvent + thing_id

Las API Thing utilizan el sobre de respuesta compartido. accepted=true significa que el Gateway entró en despacho, no que todos los dispositivos hayan mostrado una notificación del sistema.

EstadoRazón típica
400Falta observed_at, campo desconocido, attrs o external_ids no válido.
401El token privado Gateway Bearer falta o es incorrecto.
404Channel o thing_id no existe.
413El cuerpo de la petición supera los 32 KB.
503El envío no se aceptó por completo.