Project

General

Profile

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 |