Reading Time: 2 minutes

Introduction

While learning about IoT systems I have stumbled upon the word API, REST API and JSON many times. Although I kind of knew the meaning, now I took the time to learn in more details what exactly these mean so it crossed my mind why not write a brief article about it. Bear in mind that apart from some programming in Matlab for my PhD, I wouldn’t call myself a programmer 🙂

For that reason, I will briefly describe what these are and if you are programmer you can just skip this post. If however you would like to know what these acronyms actually mean and what they mean in IoT I believe my short explanation will come in handy.

 

First let’s define what’s an API?

API (short for Application Programming Interface) is actually a clearly defined user interface that software exposes to the world i.e. other programs can use the API by passing some strictly defined inputs. So the software providing API can be thought of like a black box, it can be accessed (inputs sent and outputs received via API) without knowing the internal structure of the box.

The very good metaphor is you driving the car. You don’t actually need to know how really the car works (motors, steereing, gears, tyres, electronics etc.) you just send input through your input interfaces (wheel, gear level and pedals) to perform any action you like.

 

Then the more tricky….REST part

A RESTful API is one way (there are others, like SOAP for instance) in which programs, servers, and web sites can share data and services. REST (Representational State Transfer) is just a pattern or more precisely a software architectural style for making APIs so that in the end, other programs can correctly request and receive data and services that an API makes available.

As with any architecture there are some rules and constraints that it must follow some being based upon resources and upon resource representation. There are of course more rules since REST is more complex so in case you really want to dig deeper there is a very good video here.

 

JSON

JSON stands for the Java Script Object Notation. It’s not a programming language like C or Python i.e. it’s actually a format of messages through which programming languages can exchange information.

There is a good analogy in our human languages. For instance, when I as a Croat go to Germany I should learn German or if I go to China I should learn Chinese. But if I can use English, the “lingua franca” of today both me and the German or Chinese guy can use only one foreign language. Similarly PHP and Javascript use JSON (and not their own notations) to exchange information. Another very widely although with a bit more complex format is XML

The JSON format looks quite simple i.e. it looks like a Table of contents, but instead of page numbers, the information can be found directly under a section of the table.

 

Why knowing these is important for IoT?

Although IoT starts with sensors/actuators and uses several types of communication infrastructure, IMHO the most important part of any IoT solution is the IoT application together with IoT platform which it uses. Since it’s very important for these two to be widely usable and inter-operable APIs must be used. Also, since most of the time these are web applications hence HTTP and REST APIs are used.

[easy-social-share]

What’s IOTA and how to buy it?

We’ve been writing about Blockchain and IOT and now we’ll explore IOTA cryptocurrency and give you an almost step by step guide on how to buy it. The IOTA token was created to service the ‘Internet of things’: the billions of small computing devices that are increasingly being embedded into everyday objects, enabling them to […]

August 18 3 Minutes to read

Getting things done (GTD) by David Allen – Book review

Introduction Although I think that I am pretty well organized I find this book very valuable since I have tweaked the way I handle stuff according to this book. To organize my day, week and more I have been using the free version of cloud SW called KanBanFlow: https://kanbanflow.com/ so I tweaked that as well. I […]

March 15 11 Minutes to read

Building the IoT by Maciej Kranz – book review

Introduction I quite liked this book. It doesn’t have too much deep technical information but it focuses more on the real use cases, industry perspective and the business part of the IoT. Also, Kranz is able to demystify IoT, not goo too much into hype but present solid use cases and reasons why IoT is […]

February 26 5 Minutes to read

Scroll Up