REST mimarisi: POST,PUT,GET metotlarını kullanalım
REST, istemci sunucu arasındaki haberleşmeyi sağlayan HTTP protokolü üzerinde çalışan bir mimaridir. Bu mimariyi kullanan sistemlere RESTful sistem denir ve çoğunlukla HTTP protokolü üzerinden Web tarayıcıları tarafından sayfaların transferinde de kullanılan HTTP fiilleri (GET, POST, PUT, DELETE v.s.) ile haberleşirler.(*)
CEYD-A bu metotları kullanan komutları destekler ve çalıştığı mobil cihazı istemci olarak varsayarak bir web sunucu ile haberleşmeye imkan tanır. Şimdi bu komutlara bir göz atalım:
cmdloadurl
1 2 3 4 5 6 7 8 |
SORU: get testi CEVAP: {!SET $data={!RET cmdloadurl http://api.geonames.org/postalCodeLookupJSON?postalcode=32800&country=TR&username=demo!}!} {!SET $row={!RET cmdgetjsonarray postalcodes,0,$data!}!} {!SET $value={!RET cmdgetjsonvalue postalcode,$row!}!} {!GET $value!} |
cmdloadurlpost
Parametreleri Form yapısında gönderelim. Her ne kadar URL yapısı GET yöntemine benzese de CEYD yapısı kendi içinde bu formatı POST parametrelerine dönüştürür.
1 2 3 4 5 |
SORU: post örnek CEVAP: Post denemesi yaptım.<br>{!RET cmdloadurlpost https://<siteismi>/test.php?submit=1&a=12345deneme!} |
Parametrelerimizi JSON formatında gönderelim:
1 2 3 4 5 6 7 |
SORU: televizyon% ŞABLON: {BAŞ}arka ışık{BAŞ}aç{HER} CEVAP {!SET json={"styleName":"FOLLOW_VIDEO","isExpert":false,"menuSetting":"STANDARD"}!} {!SET response={!RET cmdloadurlpost json,http://192.168.x.x:1925/6/ambilight/currentconfiguration,$json!}!} Video renklerini takip edecek şekilde açtım. |
cmdloadurlput
POST yerine PUT metodunu kullanalım. POST kaynağa veri göndermek için kullanılır. PUT ise aynı kaynağa aynı adres ile erişilir ve eğer içerik var ise gelen veriler ile değiştirilir, eğer içerik yok ise yeni içerik yaratılır. Kısaca PUT veri güncellemek için kullanılır.
1 2 3 4 5 6 |
SORU: ışıkları mavi,25.01| CEVAP: {!SET json={"on":true, "sat":254, "bri":254,"hue":32768}!} {!SET response={!RET cmdloadurlput json,https://192.168.x.x/api/{!GET staHueUsername!}/lights/1/state,$json!}!} Mavi yaptım. |
Referanslar:
(*) REST, https://tr.wikipedia.org/wiki/REST