TL;DR
API IoT memiliki ciri khas yang tidak sesuai dengan asumsi alat API standar: bandwidth terbatas, payload biner, pola otentikasi perangkat, dan protokol non-HTTP. Artikel ini membahas kebutuhan pengembang IoT terhadap alat API, posisi Apidog di ekosistem ini, keterbatasannya (misal: MQTT), serta cara menguji lapisan HTTP backend IoT secara efektif.
💡 Apidog adalah platform pengembangan API lengkap dan gratis. Untuk pengembang IoT, Apidog menangani lapisan HTTP dan WebSocket pada backend perangkat Anda – endpoint provisioning REST, pengujian payload biner, header otentikasi kustom, serta konfigurasi SSL/TLS – dan transparan tentang protokol yang tidak didukungnya. Coba Apidog gratis tanpa kartu kredit.
Pendahuluan
Pengembangan IoT memiliki dua sisi dalam hal API. Sisi perangkat: broker MQTT, endpoint CoAP, protokol biner kustom, dan aliran WebSocket—semua dipilih demi efisiensi bandwidth dan daya. Sisi platform: API REST untuk provisioning perangkat, pembaruan firmware, telemetri, serta dasbor manajemen—mirip backend web konvensional.
Sebagian besar alat API hanya fokus pada sisi platform, mengabaikan protokol perangkat. Pengembang IoT harus paham protokol yang ditangani alat API mereka, memanfaatkannya untuk HTTP/WebSocket, dan tahu kapan harus menggunakan alat khusus seperti MQTTX.
Artikel ini memetakan protokol IoT, cakupan Apidog, dan contoh pengujian praktis HTTP backend IoT.
Lanskap Protokol IoT
MQTT: publish-subscribe untuk perangkat
MQTT adalah protokol utama komunikasi perangkat-ke-cloud: efisien, tahan terhadap jaringan buruk, dan hemat sumber daya.
Konsep utama:
- Topik (channel hierarkis)
- QoS (fire-and-forget, at-least-once, exactly-once)
- Retained messages, Last Will and Testament (LWT)
Apidog tidak mendukung MQTT secara native. Gunakan:
- MQTT Explorer: GUI desktop untuk broker MQTT
- MQTTX: Klien MQTT multiplatform dengan scripting
- mosquitto_pub/mosquitto_sub: CLI dari Mosquitto
- HiveMQ Broker: Broker MQTT cloud dengan klien web gratis
Testing MQTT memerlukan alat khusus di luar alat API HTTP/REST.
HTTP/REST: lapisan platform
Platform IoT selalu menyediakan API REST, digunakan untuk:
- Provisioning perangkat: Registrasi, pembuatan sertifikat, identitas
- Pembaruan firmware OTA: Cek dan unduh firmware
- Push konfigurasi: Kirim konfigurasi ke perangkat/grup
- Penyerapan telemetri: POST data sensor (bisa JSON/biner)
- Manajemen perangkat: Status, perintah remote, grup
- Kueri data: Telemetri, log, histori event
- Registrasi Webhook: Konfigurasi pengiriman event keluar
Semua endpoint ini bisa diuji dengan alat REST seperti Apidog.
WebSocket: komunikasi perangkat dua arah
WebSocket mengisi celah antara REST (stateless) dan MQTT (brokered pub-sub). Digunakan untuk:
- Pengiriman perintah real-time
- Streaming data sensor ke dashboard manajemen
- Pembaruan konfigurasi dua arah
Apidog mendukung pengujian WebSocket dengan header kustom.
CoAP: perangkat terbatas
CoAP (Constrained Application Protocol) mirip HTTP tapi didesain untuk mikrokontroler, berjalan di atas UDP.
Apidog tidak mendukung CoAP. Gunakan copper4cr (browser extension) atau CLI libcoap.
Payload biner
Banyak protokol IoT memakai encoding biner (Protobuf, MessagePack, CBOR, format kustom) untuk efisiensi bandwidth.
Apidog mendukung body request biner mentah: kirim payload heksa/base64 via HTTP sesuai kebutuhan endpoint Anda.
Pola Otentikasi Perangkat di IoT
Otentikasi perangkat IoT berbeda dari API umum. Selain OAuth 2.0, Bearer, dan API key, IoT menambahkan:
Mutual TLS (mTLS)
Platform besar (AWS, Azure, Google IoT) memakai mTLS: setiap perangkat punya sertifikat klien. Apidog mendukung konfigurasi sertifikat klien untuk koneksi TLS—uji endpoint mTLS dengan memuat file sertifikat perangkat.
Kunci API khusus perangkat
Platform sederhana sering memakai API key/token per perangkat. Apidog menangani header API key dan Bearer secara native.
JWT dengan klaim perangkat
JWT dengan klaim khusus perangkat (ID, model, firmware) juga umum. Gunakan Bearer JWT di header, refresh token via pre-request script jika perlu.
Otentikasi header kustom
Beberapa platform menggunakan header otentikasi non-standar seperti X-Device-Token. Apidog mendukung header arbitrer.
Menguji API REST IoT dengan Apidog
Alur provisioning perangkat
Provisioning biasanya multi-step REST:
- POST registrasi (serial, model, firmware)
- Terima ID perangkat + kredensial
- Konfigurasi perangkat dengan kredensial
- GET verifikasi status
Gunakan fitur chaining Apidog: extract ID perangkat via post-request script, simpan sebagai variabel, gunakan di langkah berikutnya.
Endpoint pembaruan firmware OTA
Alur umum:
- GET
/devices/{id}/update-check - GET
/devices/{id}/firmware(URL/binary) - POST
/devices/{id}/update-status
Uji respons biner: cek header (Content-Type, Content-Length) dan validasi format file.
Penyerapan telemetri via HTTP
Kirim POST dengan payload JSON/biner (Protobuf, MessagePack):
- Set body ke
raw - Pilih
binary - Tempel payload heksa/base64
- Set header
Content-Type: application/octet-stream - Kirim & cek respons
Untuk protobuf, encode payload dengan library Anda, lalu paste ke Apidog.
Pengujian dengan sertifikat SSL kustom
Backend IoT umumnya memakai sertifikat self-signed atau CA privat:
- Nonaktifkan SSL verification (dev)
- Muat custom CA (staging/production)
- Muat sertifikat klien untuk mTLS
Setel opsi SSL di Apidog sesuai kebutuhan environment.
Pengujian WebSocket untuk aliran perangkat IoT
Platform IoT banyak menyediakan endpoint WebSocket untuk komunikasi real-time:
- Device shadow stream: Streaming status perangkat (AWS, Azure IoT)
- Live telemetry: Dashboard real-time lewat WebSocket
- Command delivery: Pengiriman perintah instan
Langkah pengujian di Apidog:
- Koneksi ke URL WebSocket dengan header otentikasi (Bearer/API key)
- Kirim pesan subscribe (jika perlu)
- Amati pesan masuk di log
- Kirim pesan perintah uji, verifikasi efek pada perangkat
Apidog mendukung pengaturan subprotocol via header Sec-WebSocket-Protocol.
Apa yang digunakan untuk pengujian MQTT
Karena Apidog tidak mendukung MQTT, gunakan:
- MQTTX: GUI canggih, support MQTT 3.1.1/5.0, TLS/mTLS, scripting.
- MQTT Explorer: Visualisasi topik, bagus untuk debugging arus pesan.
-
CLI mosquitto: (
mosquitto_pub,mosquitto_sub) untuk scripting dan automasi cepat. - Library MQTT bahasa: (paho-mqtt Python, MQTT.js Node.js) untuk CI/CD testing custom.
Pengaturan Pengujian Backend IoT Praktis
Struktur environment 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 = {{diambil melalui skrip pra-permintaan}}
firmware_version = 2.1.4
Struktur folder:
-
provisioning/– registrasi perangkat & kredensial -
telemetry/– endpoint penyerapan (JSON/biner) -
ota/– update/pengiriman firmware -
device-management/– operasi CRUD perangkat -
websocket/– tes koneksi real-time -
error-cases/– tes kredensial error, token kadaluwarsa, payload rusak
Checklist pengujian payload biner:
- Payload biner valid (happy path)
- Payload biner terpotong (incomplete)
- Header Content-Type salah
- Payload ukuran maksimum
- Otentikasi perangkat benar/salah
FAQ
Apakah Apidog mendukung pengujian MQTT?
Tidak. Gunakan MQTTX, MQTT Explorer, atau CLI mosquitto. Apidog hanya untuk HTTP & WebSocket backend.
Bisakah Apidog menguji endpoint CoAP?
Tidak. CoAP di atas UDP, bukan HTTP. Gunakan copper4cr atau libcoap.
Bagaimana menguji payload protobuf biner di Apidog?
Encode pesan protobuf Anda, convert ke heksa/base64, set body ke biner mentah di Apidog, set header Content-Type sesuai.
Apakah Apidog mendukung mTLS untuk otentikasi perangkat?
Ya. Muat sertifikat klien & private key di pengaturan SSL Apidog.
Bisakah Apidog menguji AWS IoT Core, Azure IoT Hub, Google Cloud IoT?
Ya, untuk API REST HTTP mereka. Untuk MQTT, gunakan MQTTX/alat lain.
Bagaimana menguji pengkodean telemetri biner bandwidth rendah?
Siapkan payload biner valid dan error (prototipe, corrupt), simpan sebagai variabel/file; kirim via Apidog, cek respons dan proses backend.
Pengembangan backend IoT membutuhkan lebih dari satu alat. Apidog efektif untuk HTTP—provisioning, manajemen, telemetri, payload biner, mTLS, WebSocket. Untuk MQTT, gunakan MQTTX atau mosquitto. Pilih alat sesuai protokol, jangan berharap satu alat bisa semuanya.
Top comments (0)