
HTTP - GET / HTTP - POST (application/x-www-form-urlencoded):
==============================================================
  x) [OUT]   DeviceAPIMethod::GET  [Args: format, pointer, query?]
     -- http[s]://<baseURL>/devices[/<id>/<pointer>]
     
  x) [IN]    DeviceAPIMethod::COMMAND  [Args: format, pointer, msg]
     -- http[s]://<baseURL>/devices/<id>[/<pointer>]
     
  x) [IN]    DeviceAPIMethod::STATUS_UPDATE  [Args: format, pointer, msg]
     -- http[s]://<baseURL>/devices/<id>[/<pointer>]

  x) [EVENT] DeviceAPIMethod::REGISTER_EVENT  [Args: format, pointer, event]
     -- http[s]://<baseURL>/devices/<id>[/<pointer>]
                 - Long-Polling

HTTP - PUT:
============
  x) [IN]    DeviceAPIMethod::COMMAND  [Args: format, pointer, msg]
     -- http[s]://<baseURL>/devices/<id>/command[/<pointer>]
     
  x) [IN]    DeviceAPIMethod::STATUS_UPDATE  [Args: format, pointer, msg]
     -- http[s]://<baseURL>/devices/<id>/statusupdate[/<pointer>]

HTTP - WebSocket:
==================
  x) [EVENT] DeviceAPIMethod::REGISTER_EVENT  [Args: format, pointer, event]
     -- ws://<baseURL>/devices/<id>[/<pointer>]


==============================================================

API Method Parameter:
  -- Query: method = get | command | statusupdate | event
  -- Header: API-METHOD | X-API-METHOD

Common Parameters:

  x) Format-Parameters:
      -- Query: format = json | jsonp | xmlplist | ...
      -- Query: json | jsonp [= <callback>] | xmlplist | ...
      -- Query: callback = callback  -  in conjunction with jsonp or format=jsonp, defaults to callback
      -- Header: application/[x-]javascript = jsonp | application/json = json | application/yaml = yaml | application/xml = xmlplist

  x) Pointer Parameter:
      -- Query: pointer = <selector in JSON Pointer format>
      -- URL: .../devices/<id>/[.../]<pointer>

COMMAND/STATUS_UPDATE Parameters:
  -- Query: body = <command | status-update>

EVENT Parameters:
  -- Query: event = command | statusupdate | statechange | added | removed | all


==============================================================


GET/POST Info Handler  [Condition: GET/POST + AP::GET]

GET/POST/PUT Command Handler  [Condition: GET/POST/PUT + API::COMMAND/API::STATUSUPDATE]

GET/POST Event Handler [Condition: GET/POST + API::EVENT]

WebSocket Event Handler  [Condition: WebSocket]



IF GET/POST:
	Get API Method
	Get other parameters
	Do stuff
ELSEIF PUT:
	Get other parameters
	Do stuff
ELSEIF WebSocket:
	
	

