Project

General

Profile

REST APIs » History » Version 15

Hammel, 09 Sep 2018 14:18

1 1 Hammel
h1. REST APIs
2
3 9 Hammel
h2. Monitor Node (imwww)
4 1 Hammel
5 15 Hammel
The following describe the API used by the monitor to process incoming requests.
6
7 12 Hammel
table{width:100%}.
8
|_. Resource Name |_. HTTP Verbs      |_. HTTP Methods            |_. Returns      |_. Direction   |_. Description |
9 1 Hammel
| Pair            | CREATE Pair       |  POST /pair/iot/<uuid>    | ACK            | From IoT Node | Register an IoT node w/Monitor using UUID |
10 15 Hammel
| Pair            | UPDATE Pair       |  POST /ping               | ACK            | From IoT Node | IoT device is verifying its stored pairing information |
11 1 Hammel
| Pair            | CREATE Pair       |  POST /pair/jarvis/<uuid> | ACK            | From Jarvis   | Pair a Jarvis node with Monitor |
12 12 Hammel
| Monitor         | GET Monitor ID    |  GET /monitor             | Monitor ID     | From Jarvis   | Monitor Identity information |
13
| Device          | GET Devices       |  POST /devices            | Device list    | From Jarvis   | Get list of device IDs and descriptors |
14 15 Hammel
| Device          | UPDATE Device     |  POST /set/device         | Device state   | From Jarvis   | Change device state with JSON |
15
| Monitor         | GET Query Devices |  GET /query/devices       | Updates states | From monitor  | Causes monitor to update its device state information; only valid if received from localhost |
16 1 Hammel
17 6 Hammel
Notes
18
* Monitor identity includes location and possibly other descriptors that uniquely identify the monitor
19 1 Hammel
* POST is required for GET requests because the sender must identify themselves with a valid encryption key, which is sent in a JSON body that GET does not allow.  This is because we are not using HTTPS but rather encrypting the requests and responses inside a JSON packet stored in the body of messages.
20
21
h2. IoT Node (embedded in Arduino device code)
22
23 15 Hammel
The following describe the API used by a sensor to process incoming requests.
24
25 1 Hammel
table{width:100%}.
26 9 Hammel
|_. Resource Name |_. HTTP Verbs |_. HTTP Methods        |_. Returns    |_. Direction |_. Description |
27 15 Hammel
| Device          | UPDATE Device|  POST /set            | Device config| From Monitor | Change device state with JSON |
28
| Device          | POST Query   |  POST /query          | Device config| From Monitor | Get Device state as JSON |
29 9 Hammel
| Device          | GET Register |  GET /register/<uuid> | ACK          | From Monitor | Provides UUID from monitor |