DEV Community

Cover image for แพลตฟอร์ม API สำหรับพัฒนา IoT
Thanawat Wongchai
Thanawat Wongchai

Posted on • Originally published at apidog.com

แพลตฟอร์ม API สำหรับพัฒนา IoT

สรุป

API ของ IoT มีลักษณะเฉพาะที่แตกต่างจากเครื่องมือ API ทั่วไป: แบนด์วิธจำกัด, เพย์โหลดแบบไบนารี, รูปแบบการยืนยันตัวตนของอุปกรณ์, และโปรโตคอลที่ไม่ใช่ HTTP เลย บทความนี้จะกล่าวถึงสิ่งที่นักพัฒนา IoT ต้องการจากเครื่องมือ API, จุดที่เครื่องมือมาตรฐานอย่าง Apidog สามารถใช้งานได้, ข้อจำกัด (ตัวอย่างที่ตรงไปตรงมาคือ MQTT), และวิธีการทดสอบเลเยอร์ที่ใช้งาน HTTP ของแบ็กเอนด์ IoT ของคุณอย่างมีประสิทธิภาพ

ทดลองใช้ Apidog วันนี้

💡 Apidog คือแพลตฟอร์มพัฒนา API แบบครบวงจรฟรี สำหรับนักพัฒนา IoT, Apidog จัดการกับเลเยอร์ HTTP และ WebSocket ของแบ็กเอนด์อุปกรณ์ของคุณ – ตั้งแต่เอนด์พอยต์การจัดเตรียม REST, การทดสอบเพย์โหลดแบบไบนารี, เฮดเดอร์การยืนยันตัวตนแบบกำหนดเอง, และการกำหนดค่า SSL/TLS – พร้อมทั้งระบุอย่างตรงไปตรงมาถึงโปรโตคอลที่ไม่ได้รองรับ ทดลองใช้ Apidog ฟรี ไม่มีบัตรเครดิต

บทนำ

การพัฒนา IoT มีสองเลเยอร์หลักเมื่อพูดถึง API:

  • เลเยอร์การสื่อสารกับอุปกรณ์: โบรกเกอร์ MQTT, เอนด์พอยต์ CoAP, โปรโตคอลไบนารีแบบกำหนดเอง, และสตรีม WebSocket เลือกใช้เพื่อประสิทธิภาพแบนด์วิธและความเหมาะสมกับเครือข่ายจำกัด
  • เลเยอร์เชื่อมต่อกับแพลตฟอร์ม: REST API สำหรับการจัดเตรียมอุปกรณ์, ส่งมอบเฟิร์มแวร์, นำเข้าข้อมูล telemetry, และแดชบอร์ดที่เหมือนกับแบ็กเอนด์เว็บ

เครื่องมือ API ส่วนใหญ่รองรับเฉพาะเลเยอร์ REST และ WebSocket นักพัฒนา IoT ที่ต้องการทดสอบ MQTT ในเครื่องมือ API ทั่วไปจะต้องใช้เครื่องมือเฉพาะทางเพิ่มเติม ควรเลือกใช้เครื่องมือให้ตรงกับโปรโตคอลที่ต้องการทดสอบ

บทความนี้จะสำรวจโปรโตคอล IoT สำคัญ อธิบายสิ่งที่ Apidog รองรับและวิธีตั้งค่าทดสอบสำหรับแบ็กเอนด์ IoT ที่ใช้ HTTP

ภูมิทัศน์ของโปรโตคอล IoT

MQTT: publish-subscribe สำหรับอุปกรณ์

MQTT คือโปรโตคอลหลักสำหรับการสื่อสารอุปกรณ์กับคลาวด์ มีหัวข้อ (topic), ระดับ QoS, ข้อความที่เก็บไว้ (retained), และ LWT สำหรับตรวจจับสถานะออฟไลน์

Apidog ไม่รองรับ MQTT โดยตรง

สำหรับการทดสอบ MQTT ใช้เครื่องมือเหล่านี้:

  • MQTT Explorer: GUI Desktop สำหรับตรวจสอบและโต้ตอบกับโบรกเกอร์
  • MQTTX: ไคลเอนต์ MQTT ข้ามแพลตฟอร์มพร้อมการเขียนสคริปต์
  • mosquitto_sub / mosquitto_pub: เครื่องมือ CLI จาก Mosquitto
  • HiveMQ Broker (รุ่นฟรี): โบรกเกอร์ MQTT บนคลาวด์พร้อมไคลเอนต์เว็บ

แนะนำ: แยกเครื่องมือทดสอบ MQTT ออกจากเครื่องมือ REST API

HTTP/REST: เลเยอร์แพลตฟอร์ม

เกือบทุกแพลตฟอร์ม IoT มี REST API สำหรับ:

  • การจัดเตรียมอุปกรณ์ (ลงทะเบียน, สร้างใบรับรอง)
  • อัปเดตเฟิร์มแวร์แบบ OTA
  • การพุชการกำหนดค่า
  • การนำเข้าข้อมูล telemetry
  • การจัดการอุปกรณ์
  • การสอบถามย้อนหลังและบันทึก
  • การลงทะเบียน Webhook

ทั้งหมดนี้ทดสอบได้ด้วยเครื่องมือ REST มาตรฐาน

ตัวอย่างการตั้งค่า request ใน Apidog:

POST /devices/register
{
  "serial": "SN-TEST-001",
  "model": "X100",
  "fw_version": "2.1.4"
}
Enter fullscreen mode Exit fullscreen mode

WebSocket: การสื่อสารสองทิศทาง

WebSocket เหมาะสำหรับสตรีมคำสั่งอุปกรณ์, ข้อมูล telemetry แบบสด, และอัปเดต config สองทิศทาง

Apidog รองรับ WebSocket พร้อมกำหนด custom headers

CoAP: สำหรับอุปกรณ์ที่มีข้อจำกัด

CoAP คือโปรโตคอลแบบ HTTP บน UDP สำหรับไมโครคอนโทรลเลอร์

Apidog ไม่รองรับ CoAP

ทดสอบด้วย copper4cr (browser extension) หรือ libcoap CLI

เพย์โหลดแบบไบนารี

IoT ใช้ Protocol Buffers, MessagePack, CBOR, หรือ custom binary เพื่อประหยัดแบนด์วิธ

Apidog รองรับ binary request content

สามารถส่ง hex/base64 และตั้งค่า Content-Type ได้


รูปแบบการยืนยันตัวตนของอุปกรณ์ใน IoT

การยืนยันตัวตนใน IoT มีหลายแบบ นอกเหนือจาก OAuth/Bearer Token

Mutual TLS (mTLS)

แพลตฟอร์ม IoT ใหญ่ ๆ ใช้ mTLS สำหรับยืนยันตัวตนอุปกรณ์

Apidog รองรับการโหลด client certificate และ private key

ตั้งค่าใน SSL/TLS ของ request ได้

API key เฉพาะอุปกรณ์

ออก API key ให้แต่ละอุปกรณ์ ใช้งานแบบ Bearer token ได้

Apidog รองรับโดยตรง

JWT พร้อม claims ของอุปกรณ์

ใช้ JWT ที่ฝังข้อมูลอุปกรณ์ สคริปต์ก่อน request สามารถ generate/refresh token

Apidog รองรับ JWT Bearer

Custom Auth Headers

ใช้ custom header เช่น X-Device-Token

Apidog รองรับ header แบบกำหนดเอง


การทดสอบ IoT REST APIs ด้วย Apidog

ขั้นตอนการจัดเตรียมอุปกรณ์

ลำดับการทดสอบ REST:

  1. POST ลงทะเบียนอุปกรณ์
  2. รับ device_id จาก response
  3. ใช้ device_id ใน request ถัดไป (config/verify)
  4. GET สถานะอุปกรณ์

ตัวอย่างการใช้งานตัวแปรใน Apidog:

  • สคริปต์หลัง request ดึง device_id ไปเก็บใน environment
  • ใช้ device_id ใน URL/Body ของขั้นตอนต่อไป

เอนด์พอยต์การอัปเดตเฟิร์มแวร์แบบ OTA

  1. GET /devices/{id}/update-check
  2. GET /devices/{id}/firmware
  3. POST /devices/{id}/update-status

ตรวจสอบ response header (Content-Type, Content-Length) สำหรับไบนารี

การนำเข้าข้อมูล telemetry ผ่าน HTTP

  1. ตั้งค่าประเภทเนื้อหาเป็น raw
  2. เลือก binary
  3. วาง payload ที่เข้ารหัส hex/base64
  4. ตั้งค่า Content-Type: application/octet-stream
  5. ส่งและตรวจสอบ response

Note: หากใช้ protobuf ต้อง encode ด้วย library ก่อน

การทดสอบ SSL ใบรับรองแบบกำหนดเอง

  • ปิด SSL verification (dev/self-signed)
  • โหลด CA certificate (เช็ค CA ส่วนตัว)
  • โหลด client certificate (test mTLS)

การทดสอบ WebSocket สำหรับสตรีมอุปกรณ์ IoT

กรณีใช้งาน:

  • สตรีมเงาอุปกรณ์ / device shadow (เช่น AWS IoT)
  • สตรีม telemetry แบบสดไป dashboard
  • ส่งคำสั่งแบบ real-time

ขั้นตอนทดสอบใน Apidog:

  1. Connect URL WebSocket พร้อม header (เช่น Bearer token)
  2. ส่ง subscribe message ถ้าจำเป็น
  3. ดูข้อความที่เข้ามาใน log
  4. ส่ง test command ตรวจสอบผล

รองรับการตั้งค่า subprotocols (Sec-WebSocket-Protocol)


สิ่งที่จะใช้สำหรับการทดสอบ MQTT

เนื่องจาก Apidog ไม่รองรับ MQTT, เลือกเครื่องมือเหล่านี้:

  • MQTTX: GUI และ scripting ครบฟังก์ชัน
  • MQTT Explorer: สำรวจ topic/message flow
  • mosquitto_pub/sub: CLI สำหรับ automation/script

สำหรับ CI/CD ใช้ไลบรารี MQTT ตามภาษา (paho-mqtt, MQTT.js ฯลฯ)


การตั้งค่าการทดสอบแบ็กเอนด์ IoT ที่ใช้งานได้จริง

ตัวอย่าง environments ใน Apidog:

Environments:
  local-dev: base_url = http://localhost:8080, ssl_verify = false
  staging: base_url = https://iot-staging.example.com, ssl_verify = true
  prod: base_url = https://api.iot.example.com, ssl_verify = true

Variables:
  device_id = dev_test_001
  device_serial = SN-TEST-00001
  auth_token = {{fetched via pre-request script}}
  firmware_version = 2.1.4
Enter fullscreen mode Exit fullscreen mode

โครงสร้างโฟลเดอร์:

  • provisioning/ – ทดสอบลงทะเบียนอุปกรณ์
  • telemetry/ – ทดสอบนำเข้า telemetry (JSON/ไบนารี)
  • ota/ – ทดสอบอัปเดตเฟิร์มแวร์
  • device-management/ – CRUD อุปกรณ์
  • websocket/ – ทดสอบ real-time
  • error-cases/ – เพย์โหลดผิด, token invalid, ฯลฯ

รายการตรวจสอบเพย์โหลดไบนารี:

  • เพย์โหลดไบนารีถูกต้อง
  • เพย์โหลดไบนารีถูกตัดทอน
  • Content-Type ไม่ถูกต้อง
  • ขนาดเพย์โหลดตาม spec
  • ยืนยันตัวตนถูกต้อง/ผิด

คำถามที่พบบ่อย

Apidog รองรับการทดสอบ MQTT หรือไม่?

ไม่ Apidog ไม่มี MQTT ในตัว ใช้ MQTTX, MQTT Explorer หรือ mosquitto CLI

Apidog สามารถทดสอบเอนด์พอยต์ CoAP ได้หรือไม่?

ไม่ รองรับเฉพาะ HTTP/WS ใช้ copper4cr หรือ libcoap สำหรับ CoAP

จะทดสอบเพย์โหลด protobuf ไบนารีใน Apidog ได้อย่างไร?

Encode ข้อความ protobuf ให้เป็นไบนารีด้วย library แล้วแปลงเป็น hex/base64

ใน Apidog ตั้ง content เป็น raw binary, วาง payload, ตั้ง Content-Type

Apidog รองรับ mTLS สำหรับการยืนยันตัวตนด้วยใบรับรองอุปกรณ์หรือไม่?

ใช่ โหลด client certificate/key ใน SSL settings ได้

สามารถใช้ Apidog ทดสอบ API ของ AWS IoT Core, Azure IoT Hub, Google Cloud IoT ได้หรือไม่?

ได้ สำหรับ HTTP REST API ทุกแพลตฟอร์ม

MQTT ต้องใช้เครื่องมือเฉพาะทาง

Best practice สำหรับการทดสอบ telemetry ไบนารี bandwidth ต่ำ?

สร้าง test fixture (ถูกต้อง/ผิด/ตัดทอน) ด้วย encoding library ส่งด้วย Apidog แล้วตรวจสอบ response code/behavior


การพัฒนาแบ็กเอนด์ IoT ต้องใช้เครื่องมือหลายตัว ไม่มีเครื่องมือเดียวที่ครอบคลุมทุกโปรโตคอล

Apidog แข็งแกร่งสำหรับ HTTP/WebSocket: provisioning, management, telemetry, binary payload, mTLS, และ WebSocket stream

MQTT ใช้ MQTTX หรือ mosquitto เติมเต็มส่วนนี้

รู้จักเลือกเครื่องมือให้เหมาะกับแต่ละเลเยอร์ ช่วยให้ทดสอบได้ครบถ้วนและมีประสิทธิภาพ

Top comments (0)