REST APIs » History » Revision 11
Revision 10 (Hammel, 13 Jul 2018 09:36) → Revision 11/16 (Hammel, 19 Aug 2018 17:20)
h1. REST APIs
h2. Monitor Node (imwww)
table{width:100%}.
|_. Resource Name |_. HTTP Verbs |_. HTTP Methods |_. Returns |_. Direction |_. Description |
| Pair | CREATE Pair | POST /pair/iot | UUID | From IoT Node | Pair an IoT node w/ Monitor |
| Pair | CREATE Pair | POST /pair/iot/<uuid> | ACK | From IoT Node | Register an IoT node w/Monitor using UUID |
| Pair | CREATE Pair | POST /pair/jarvis/<uuid> | ACK | From Jarvis | Pair a Jarvis node with Monitor |
| Monitor | GET Monitor ID| GET /monitor | Monitor ID | From Jarvis | Monitor Identity Identify information |
| Device | GET Devices | POST /devices GET /device | Device list | From Jarvis | Get list of device IDs and descriptors |
| Device | UPDATE Device | PUT /device/<uuid> | Device state | From Jarvis | Change device state with JSON |
| Device | GET Device | POST GET /device/<uuid> | Device state | From Jarvis | Get Device state as JSON |
Notes
* Monitor identity includes location and possibly other descriptors that uniquely identify the monitor
* 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.
h2. IoT Node (embedded in Arduino device code)
table{width:100%}.
|_. Resource Name |_. HTTP Verbs |_. HTTP Methods |_. Returns |_. Direction |_. Description |
| Device | UPDATE Device| PUT /device/<uuid> | Device state | From Monitor | Change device state with JSON |
| Device | GET Device | GET /device/<uuid> | Device state | From Monitor | Get Device state as JSON |
| Device | GET Register | GET /register/<uuid> | ACK | From Monitor | Provides UUID from monitor |