Project

General

Profile

REST APIs » History » Version 11

Hammel, 19 Aug 2018 17:20

1 1 Hammel
h1. REST APIs
2
3 9 Hammel
h2. Monitor Node (imwww)
4 1 Hammel
5
table{width:100%}.
6 6 Hammel
|_. Resource Name |_. HTTP Verbs  |_. HTTP Methods            |_. Returns    |_. Direction   |_. Description |
7 9 Hammel
| Pair            | CREATE Pair   |  POST /pair/iot           | UUID         | From IoT Node | Pair an IoT node w/ Monitor |
8 10 Hammel
| Pair            | CREATE Pair   |  POST /pair/iot/<uuid>    | ACK          | From IoT Node | Register an IoT node w/Monitor using UUID |
9
| Pair            | CREATE Pair   |  POST /pair/jarvis/<uuid> | ACK          | From Jarvis   | Pair a Jarvis node with Monitor |
10 11 Hammel
| Monitor         | GET Monitor ID|  GET /monitor             | Monitor ID   | From Jarvis   | Monitor Identity information |
11
| Device          | GET Devices   |  POST /devices            | Device list  | From Jarvis   | Get list of device IDs and descriptors |
12 6 Hammel
| Device          | UPDATE Device |  PUT /device/<uuid>       | Device state | From Jarvis   | Change device state with JSON |
13 11 Hammel
| Device          | GET Device    |  POST /device/<uuid>      | Device state | From Jarvis   | Get Device state as JSON |
14 1 Hammel
15 6 Hammel
Notes
16
* Monitor identity includes location and possibly other descriptors that uniquely identify the monitor
17 11 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.
18 1 Hammel
19
h2. IoT Node (embedded in Arduino device code)
20 7 Hammel
21 1 Hammel
table{width:100%}.
22 9 Hammel
|_. Resource Name |_. HTTP Verbs |_. HTTP Methods        |_. Returns    |_. Direction |_. Description |
23
| Device          | UPDATE Device|  PUT /device/<uuid>   | Device state | From Monitor | Change device state with JSON |
24
| Device          | GET Device   |  GET /device/<uuid>   | Device state | From Monitor | Get Device state as JSON |
25
| Device          | GET Register |  GET /register/<uuid> | ACK          | From Monitor | Provides UUID from monitor |