Kısaca
IoT API'leri, klasik API araçlarının çoğu zaman varsaydığı şeylerden farklı gereksinimlere sahiptir: kısıtlı bant genişliği, ikili veri yükleri, cihazlara özel kimlik doğrulama yöntemleri ve HTTP dışında protokoller. Bu yazıda, IoT geliştiricileri için API araçlarından neler beklenmesi gerektiğini, Apidog gibi araçların hangi alanlarda güçlü olduğunu, hangi protokollere dokunmadığını (örneğin MQTT) ve IoT arka uçlarının HTTP yüzeyini nasıl etkin şekilde test edebileceğinizi bulacaksınız.
💡 Apidog ücretsiz, kapsamlı bir API geliştirme platformudur. IoT geliştiricileri için Apidog; cihaz arka ucunun HTTP ve WebSocket katmanlarıyla (REST endpoint'leri, ikili yük testleri, özel kimlik doğrulama başlıkları, SSL/TLS yapılandırması) ilgilenirken, desteklemediği protokolleri de açıkça belirtir. Apidog'u ücretsiz deneyebilirsiniz, kredi kartı gerekmez.
Giriş
IoT API geliştirmesi iki ana katmana ayrılır. Birinci katman, cihaza yönelik iletişim protokolleridir: MQTT broker'ları, CoAP endpoint'leri, özel ikili protokoller ve WebSocket akışları. Bu protokoller düşük bant genişliği, düşük enerji tüketimi ve zorlu ağlar için optimize edilmiştir.
İkinci katman ise platforma yönelik yüzeydir: Cihaz sağlama, firmware güncelleme dağıtımı, telemetri alımı ve yönetim panoları için REST API'leri. Bu API'ler klasik web arka uçları gibi görünür ve davranır.
Çoğu API aracı, bu ikinci katmanı kapsar ama ilkini dikkate almaz. Bir API platformundan MQTT desteği bekleyen IoT geliştiricisi genellikle hayal kırıklığı yaşar. Doğru yaklaşım: Hangi protokolün hangi araçla test edilebileceğini bilmek, standart API aracınızın sınırlarını anlamak ve gerektiğinde ek araçları kullanmaktır.
Bu makalede, IoT protokol haritasını, Apidog'un desteklediği/desteklemediği noktaları ve IoT arka uçlarının HTTP yüzeyini test etmek için uygulanabilir bir kurulum örneğini bulacaksınız.
IoT Protokol Ortamı
MQTT: Cihazlar için Publish/Subscribe
MQTT, cihazdan buluta iletişimde yaygın olarak kullanılır. Zayıf ağlar ve kısıtlı donanımda çalışmak üzere tasarlanmıştır.
Temel kavramlar:
- Konular (hiyerarşik mesaj kanalları)
- QoS seviyeleri (en az bir kez, sadece bir kez, vs.)
- Saklanan mesajlar
- Son vasiyet ve bildirim (LWT)
Apidog, MQTT'yi yerel olarak desteklemez. MQTT testleri için şu araçları kullanın:
- MQTT Explorer: Kolay arayüzlü masaüstü MQTT broker istemcisi
- MQTTX: Betik desteği olan, çapraz platform MQTT istemcisi
- mosquitto_sub/mosquitto_pub: CLI MQTT araçları
- HiveMQ Broker (ücretsiz sürüm): Web istemcisiyle birlikte bulut tabanlı MQTT broker
REST API aracınızın yanında, MQTT için özel bir test aracı ayırın.
HTTP/REST: Platform Katmanı
Her IoT platformunda bir REST API yüzeyi mevcuttur. REST şu işlemler için kullanılır:
- Cihaz sağlama: Kayıt, sertifika üretimi, kimlik atama
- OTA firmware güncellemeleri
- Yapılandırma gönderme: Cihaz(lar)a konfigürasyon sağlama
- Telemetri alımı: Bazı platformlarda cihazdan HTTP POST ile veri alımı
- Cihaz yönetimi: Durum, uzaktan komut, grup yönetimi
- Veri sorgulama: Geçmiş telemetri, olaylar, alarmlar
- Webhook kaydı: Olay teslimi yapılandırması
Bu yüzey tamamen klasik REST API test araçlarıyla kontrol edilebilir.
WebSocket: Çift Yönlü Cihaz İletişimi
WebSocket, REST ve MQTT arasında konumlanır. Gerçek zamanlı cihaz komutları, telemetri akışı ve çift yönlü yapılandırmalar için kullanılır.
Apidog, bağlantı başlığı desteğiyle WebSocket testini destekler ve çoğu IoT senaryosunu kapsar.
CoAP: Kısıtlı Cihazlar
CoAP (Constrained Application Protocol), mikrodenetleyiciler ve dar bant ağlar için tasarlanmış, UDP tabanlı bir HTTP benzeri protokoldür.
Apidog, CoAP'ı desteklemez. CoAP testleri için copper4cr (browser eklentisi) veya libcoap CLI araçlarını kullanabilirsiniz.
İkili Yükler
Birçok IoT protokolü JSON yerine ikili kodlama kullanır: Protocol Buffers, MessagePack, CBOR veya özel formatlar.
Apidog, ham ikili istek gövdelerini destekler. HTTP üzerinden ikili veri göndermeniz gerekiyorsa, hex veya base64 kodlu yükleri kullanabilirsiniz.
IoT'de Cihaz Kimlik Doğrulama Desenleri
IoT cihazlarının kimlik doğrulaması, klasik API kimlik doğrulamasından farklıdır. Standart API araçları OAuth 2.0, Bearer token ve API anahtarlarını destekler; IoT ortamında ise aşağıdakiler öne çıkar:
Karşılıklı TLS (mTLS)
Birçok IoT platformu (AWS IoT Core, Azure IoT Hub, Google Cloud IoT Core) cihaz kimlik doğrulaması için mTLS kullanır. Cihaz, sağlama sırasında verilen istemci sertifikasını bağlantı sırasında sunar.
mTLS endpoint'lerini test etmek için, istemci sertifikası ve özel anahtarı API aracınıza yüklemeniz gerekir. Apidog bu desteği sunar.
Cihaza Özel API Anahtarları
Basit IoT platformlarında cihaza özel API anahtarları verilir. Bunlar, Apidog'un desteklediği klasik API anahtarı başlıkları gibi çalışır.
JWT ile Cihaz Talepleri
Bazı platformlar, cihaza özel talepler taşıyan JWT'ler yayınlar. Standart Bearer JWT desteği burada da geçerlidir. Jetonlar kısa ömürlüyse, istek öncesi betiklerle otomatik yenileme yapılabilir.
Özel Başlık Kimlik Doğrulaması
Kimi tescilli IoT platformlarında standart dışı başlıklar kullanılır. Apidog, özel başlık tanımlamanıza olanak verir; örneğin X-Device-Token veya X-Device-Serial başlıklarını kolayca ekleyebilirsiniz.
IoT REST API'lerini Apidog ile Test Etme
IoT arka uç testlerinde Apidog'un öne çıktığı uygulamalar:
Cihaz Sağlama Akışları
Tipik bir sağlama akışı:
- Cihaz kaydı için POST isteği (cihaz seri numarası, model, firmware sürümü)
- Yanıtta cihaz kimliği ve kimlik bilgisi gelir
- Cihaz yapılandırması, alınan kimlik bilgileri ile yapılır
- Kayıt durumunun GET ile doğrulanması
Apidog'un zincirleme istek desteğiyle, ilk adımda dönen cihaz kimliğini ortam değişkenine kaydedip sonraki isteklerde kullanabilirsiniz. Tüm akışı bir dizi olarak çalıştırın.
OTA Firmware Güncelleme Uç Noktaları
Bir OTA akışı genellikle şunlardan oluşur:
-
GET /devices/{id}/update-check– güncelleme olup olmadığını kontrol eder -
GET /devices/{id}/firmware– firmware dosyasını indirir veya URL döner -
POST /devices/{id}/update-status– kurulum sonucunu bildirir
Apidog ile firmware dosyasının Content-Type ve Content-Length başlıklarını inceleyip, verinin beklenen formatta geldiğini doğrulayabilirsiniz.
HTTP ile Telemetri Alımı
Birçok platformda cihazdan HTTP POST ile telemetri alınır. Yük genellikle JSON, fakat bant kısıtı olan ortamlarda ikili (protobuf, MessagePack) olabilir.
Test için:
- İstek gövdesini raw olarak ayarlayın
- Gövde formatını binary seçin
- Hex ya da base64 kodlanmış yükü yapıştırın
-
Content-Type: application/octet-stream(veya gereken tür) başlığını ekleyin - Gönderip yanıtı kontrol edin
Not: Protobuf gibi yükler için, test verinizi önce uygun kütüphane ile encode edin.
Özel SSL Sertifikalarıyla Test
Geliştirme veya üretim ortamlarında kendinden imzalı veya özel CA'lı sertifikalarla çalışıyorsanız, Apidog'un SSL ayarlarında:
- SSL doğrulamayı devre dışı bırakabilirsiniz (dev ortamı için)
- Özel CA sertifikası yükleyebilirsiniz
- mTLS için istemci sertifikası yükleyebilirsiniz
IoT Cihaz Akışları için WebSocket Testi
IoT platformları, gerçek zamanlı cihaz iletişimi için WebSocket endpoint'leri sunar. Kullanım örnekleri:
- Cihaz gölgesi / ikiz akışları: Cihaz durumu güncellemeleri
- Canlı telemetri akışları: Gerçek zamanlı sensör verileri
- Komut teslimi: Cihaza gerçek zamanlı komutlar
Test adımları:
- Gerekli kimlik doğrulama başlıklarıyla WebSocket URL'sine bağlanın
- Abonelik mesajı gerekiyorsa gönderin
- Gelen mesajları mesaj günlüğünde izleyin
- Test komutları gönderip cihaz tarafı davranışını doğrulayın
Alt protokol (Sec-WebSocket-Protocol başlığı) kullanmanız gerekirse, Apidog'da bağlantı yapılandırmasında ekleyebilirsiniz.
MQTT Testi için Ne Kullanılmalı
MQTT desteği için aşağıdaki araçları kullanın:
- MQTTX: Masaüstü GUI, script desteği, TLS/mTLS bağlantı yönetimi ile en kapsamlı genel MQTT istemcisidir.
- MQTT Explorer: Konu ağaçlarını görselleştirir; broker mesajlarını incelemek için idealdir.
-
mosquitto CLI araçları: (
mosquitto_pub,mosquitto_sub) hızlı script ve otomasyon için uygundur. - CI/CD entegrasyonu: Dile özgü kütüphanelerle özel test kodu (Python'da paho-mqtt, Node'da MQTT.js) yazabilirsiniz.
Pratik IoT Arka Uç Test Kurulumu
Apidog ortam yapısı:
Ortamlar:
yerel-geliştirme: base_url = http://localhost:8080, ssl_verify = false
hazırlık: base_url = https://iot-staging.example.com, ssl_verify = true
prod: base_url = https://api.iot.example.com, ssl_verify = true
Değişkenler:
cihaz_kimliği = dev_test_001
cihaz_seri_numarası = SN-TEST-00001
kimlik_doğrulama_jetonu = {{istek öncesi betik aracılığıyla alındı}}
bellenim_sürümü = 2.1.4
Klasör yapısı:
-
provisioning/: Cihaz kaydı ve kimlik düzenleme testleri -
telemetry/: Telemetri endpoint testleri (JSON/ikili) -
ota/: Firmware güncelleme ve teslimat testleri -
device-management/: CRUD işlemleri -
websocket/: Gerçek zamanlı bağlantı testleri -
error-cases/: Hatalı kimlik, süresi dolmuş token, geçersiz yük senaryoları
İkili yük test kontrol listesi:
- Doğru ikili yük ile test
- Eksik/kesik yük ile test
- Yanlış Content-Type ile test
- Maksimum yük boyutunda test
- Doğru/yanlış cihaz kimlik doğrulaması ile test
Sıkça Sorulan Sorular
Apidog MQTT testini destekliyor mu?
Hayır. Apidog'un MQTT desteği yoktur. MQTT testi için MQTTX, MQTT Explorer veya mosquitto CLI araçlarını kullanın. Apidog, IoT arka uçlarının HTTP ve WebSocket katmanlarını kapsar.
Apidog CoAP endpoint'lerini test edebilir mi?
Hayır. CoAP, Apidog'un desteklemediği UDP tabanlıdır. CoAP testleri için copper4cr veya libcoap kullanabilirsiniz.
Apidog'da ikili protobuf yüklerini nasıl test ederim?
Protobuf mesajınızı ilgili kütüphane ile ikiliye encode edin, ardından hex veya base64'e çevirin. Apidog'da gövdeyi ham ikili olarak ayarlayıp yükü yapıştırın. Content-Type'ı application/protobuf ya da platformun istediği şekilde belirleyin.
Apidog, cihaz sertifikası kimlik doğrulaması için mTLS'yi destekliyor mu?
Evet. SSL ayarları ile istemci sertifikası/yeni anahtar yükleyerek mTLS endpoint'lerini test edebilirsiniz.
Apidog ile AWS IoT Core, Azure IoT Hub veya Google Cloud IoT'yi test edebilir miyim?
Evet, bu platformların HTTP REST API'leri için uygundur. MQTT bağlantıları için ise MQTTX veya benzeri araçlar gerekir.
Düşük bant genişliğine sahip ikili telemetri kodlamasını nasıl test edebilirim?
Kodlama kütüphanenizle geçerli, eksik ve hatalı ikili yükler oluşturun; bunları ortam değişkeni veya dosya olarak saklayın. Apidog ile endpoint'e gönderdikten sonra yanıt kodu ve işleme sonuçlarını inceleyin.
IoT arka uç geliştirme, tek bir aracın tüm protokolleri kapsayamadığı bir alandır. Gerçekçi olan, en az iki araca ihtiyaç duymanız: MQTT testleri için özel bir araç ve HTTP/WebSocket testleri için Apidog gibi bir platform. Apidog; sağlama, yönetim, telemetri alımı, ikili yükler, mTLS ve WebSocket akışlarını kapsarken, MQTT için MQTTX veya mosquitto'yu kullanmanız gerekir. Hangi aracı nerede kullanacağınızı bilmek, tek bir aracın her şey olduğunu varsaymaktan çok daha etkilidir.
Top comments (0)