การส่งข้อมูลผ่าน HTTPS¶
อุปกรณ์บางประเภทสามารถส่งข้อมูลผ่าน HTTPS แทน MQTT ได้ เหมาะสำหรับอุปกรณ์ที่ส่งข้อมูลแบบ One-shot หรือผ่าน Network จากระบบที่ไม่รองรับ MQTT (ทดสอบการทำงานของ API ได้ที่ https://api.waterlevel.sgroup.io/docs-data)
Endpoint ของระบบ¶
Domain name ของ API คือ:
POST https://api.waterlevel.sgroup.io/records/data
Authentication¶
รองรับ 3 รูปแบบหลัก:
basicAuth
ใช้คู่ username:password แปลงเป็น base64 แล้วใส่ใน Header
HTTP Header: Authorization: Basic base64_encode(username:password)
apiKeyAuth (ผ่าน Header)
HTTP Header: x-api-key: YOUR_API_KEY
apiKeyQuery (ผ่าน Query String)
POST https://api.waterlevel.sgroup.io/records/data?api_key=YOUR_API_KEY
โครงสร้าง Payload¶
Payload หลักประกอบด้วย 2 ส่วน:
timestampเวลาหลักของชุดข้อมูล (ไม่ส่งก็ได้ ถ้าไม่ส่งระบบจะใช้เวลาปัจจุบัน)dataเป็น Object เก็บค่าจริงจากอุปกรณ์ตาม Template ที่ผูกกับ Device
ตัวอย่าง Payload¶
{
"timestamp": 1724352970,
"data": {
"T": 1724352970,
"I": 1,
"J": 0,
"Q": 30,
"B": 806,
"IL": 6,
"IA": 0,
"ILL": 10000,
"ILH": 10001,
"ILZ0506": [
11,
10,
9,
8,
7,
6
],
"IT0": 328,
"IT1": 311
}
}
คำอธิบายเพิ่มเติม¶
timestampด้านนอก (ระดับบนสุด) - ถ้าไม่ส่ง ระบบจะใช้เวลาปัจจุบันของ Server แทน - ค่าต้องเป็น date-timeฟิลด์ภายใน
dataเช่นT, I, J, Q, B, IL, IA, ...- ชื่อตัวแปรจะขึ้นอยู่กับ Template ที่กำหนดในระบบ
ตัวอย่าง Response¶
หากบันทึกข้อมูลสำเร็จ ระบบจะตอบกลับในรูปแบบ:
{
"success": true,
"message": "Data inserted successfully",
"device_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"timestamp": "2025-11-20T17:20:53.061Z",
"data": {
"additionalProp1": {}
}
}
กรณี Error (ตัวอย่าง)¶
ตัวอย่างเช่น Duplicate ( timestamp ซ้ำ):
{
"success": false,
"warning": true,
"message": "Duplicate timestamp detected for this device",
"device_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"timestamp": "2025-11-20T17:20:53.063Z",
"existing_data": {
"additionalProp1": {}
}
}