anchor.diff: -= Byteport HTTP API v1.1
  += Byteport HTTP API v1.2
   
   Byteport HTTP REST API documentation.
  +
  +:toc:
   
   == Notes on API version
   The Byteport HTTP APIv2 is under development with many additional functions.
  
positive.code: Changes to the API minor number will not break the API but is a hint to added functionality only
  and will *not change* the URL prefix, ie v1.0 and v1.1 clients both uses the /api/v1/ prefix.
  
  
  == Introduction
  If you are not instructed otherwise, all calls should be made against the following
  
negative.code:     }
  ]
  ....
  |===
  
  === Send message to Device
  Messages can *instantly* be sent to devices connected to byteport given the devies communicates via the byteport
  message broker network.
  
  [cols="h,5a"]
  |===
  
  | URL
  | /api/v1/message/[namespace]/[device uid]/$
  
  | Method
  | GET, POST (Upon successful POST, the sent message will be returned, wrapped in a JSON
    response that describes what happened, like this:
  ....
  [
      {
          status: "Message sent to test.TestGW via channel all.",
          error_level: "0",
          user: "admin",
          send_time: "2016-02-16 14:13:36.416998+00:00",
          device: "test.100",
          message: "[{"data": "bb", "namespace": "test", "uid": "100", "timestamp": "1455632016"}]",
          id: "57"
      }
  ]
  ....
  
  | Cookie
  | csrftoken, sessionid
  
  | Parameter(s)
  |
  from (GET only)::
   Message index. Default is 0 which is the last message sent.
  to (GET only)::
   Message index. Default is 0, hence one message will be returned by default.
  message (POST only)::
   Any ASCII text.
  format_json (POST only)::
   on or off.
   Wrap the message in the JSON structure like the example below. Off is default.
  ....
   [
     { "data": "text message to device",
       "namespace": "test",
       "uid": "100",
       "timestamp": "1455632016"
     }
   ]
  ....
  
  | Content type
  | application/json
  
  |===
  
  === Device type
  