วันนี้ได้ความรู้ใหม่จากคุณ Teerawut Jitpromma เรื่อง NETPIE REST API รู้สึกแปลกใจอยู่นิดหน่อยว่ามี REST API ตั้งแต่ตอนไหน การที่ NETPIE มี REST API ทำให้รู้สึกตื่นเต้นมากครับ เพราะเราสามารถเอาอะไรไปเชื่อมต่อ ก็ได้ตามที่เราต้องการ เช่น Mobile App, Data Aggregator, Node-RED, Freeboard.io เป็นต้น ก็เลยได้มาลองเล่น NETPIE REST API ดูบ้าง มีคำแนะนำใน GitHub เรื่อง REST API อยู่นะครับ เอาเป็นว่าจะอธิบายง่ายๆ ละกัน

ตัว NETPIE เปิด API ให้เราสามารถสั่ง publish, subscribe ผ่านทาง REST API ได้ โดยใช้ URL ชื่อ https://api.netpie.io เป็น service endpoint จะทำอะไรก็ตามกับ resources เช่น publish, subscribe จะต้องทำ authentication เพื่อยืนยันตัวตน ก่อนใช้งานทุกครั้ง ซึ่งตอนนี้มี 2 วิธี

  • Basic Authentication
  • URL parameter

โดยใช้ AppKey และ AppSecret เป็น Username และ Password สำหรับใช้ในการ Authentication

สำหรับ Resources ที่รองรับได้แก่

  • Topic เป็นจุดแลกเปลี่ยน Message อ้างอิงในรูปแบบของ Path เช่น /outdoor/temp เราสามารถ Publish และ Subscribe ผ่าน REST API โดยใช้ HTTP request แบบ PUT และ GET ตามลำดับ
  • Postbox เป็นกล่องเก็บ Message แบบ Queue เมื่อ Message ถูกอ่านแล้วจะหายไปทันที

ลองมาดูตัวอย่างง่ายๆ

วิธีแรกผ่าน Basic Authentication กันก่อน ยกตัวอย่างเช่น Subscribe ไปที่ Topic ชื่อ /outdoor/temp มี AppID เป็น x1001 เปลี่ยนให้เป็นค่าของคุณเองนะครับ ลองสั่งผ่าน curl ได้ดังนี้

curl -X GET "https://api.netpie.io/topic/x1001/outdoor/temp" -u AppKey:AppSecret

จะได้ค่า return เป็น JSON กลับมาดังนี้

[{"topic":"/x1001/outdoor/temp","payload":"22.5","qos":0,"retain":true}]

วิธีที่สองผ่าน URL parameter ใช้คำสั่งดังนี้

curl -X GET "https://api.netpie.io/topic/x1001/outdoor/temp?auth=AppKey:AppSecret"

จะได้ค่า return เป็น JSON กลับมาดังนี้

[{"topic":"/x1001/outdoor/temp","payload":"22.5","qos":0,"retain":true}]

ลองมาดูผ่าน Browser กัน จะได้แบบนี้

มาลองทำ Dashboard กันดูบ้าง ใส่ใน Freeboard ได้เลย เพิ่ม Datasource แบบ JSON

ใส่ url เพื่อขอ subscribe ยกตัวอย่าง topic ชื่อ /outdoor/temp ใน AppID x1001 ดังนี้

https://api.netpie.io/topic/x1001/outdoor/temp?auth=AppKey:AppSecret

จากนั้นก็เพิ่ม Widget ลงไปได้เลย เนื่องจากค่า return ออกมาเป็น JSON ก็สบายละ

เราก็จะได้ Dashboard ที่ต่อกับ NETPIE แล้ว

ลองเอาไปเล่นกันดูครับ เกือบลืมแฟนๆ NETPIE อย่าพลาดกับ Workshop เกี่ยวกับ IoT และ NETPIE ได้ที่งาน Software Expo Asia และ Chiang Mai Maker Party 2016 นะครับ

Comments are closed.