Project

General

Profile

REST APIs » History » Revision 12

Revision 11 (Hammel, 19 Aug 2018 17:20) → Revision 12/16 (Hammel, 27 Aug 2018 14:44)

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      | ID|    GET /monitor               | Monitor ID           | From Jarvis     | Monitor Identity information | 
 | Device            | GET Devices             |    POST /devices              | 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 /device/<uuid>        | Device state     | From Jarvis     | Get Device state as JSON | 
 | Monitor           | GET Query Eevices |    GET /query/devices         | Updates states | From monitor    | Causes monitor to update its device state information | 

 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 |