Access Keys:
Skip to content (Access Key - 0)
 

Beehive 1.0 REST API documentation

The following document describes the Beehive 1.0 REST API which supports both XML and JSON.

By default the response format is XML, you can also use JSON. You needn't to specify 'Accept' type in HTTP header, if you want to use JSON, see how to 'Use JSONP format' in this document.

Feature:

  • LIRC infrared code query service.
  • Concatenate lircd.conf
  • Default button icons

Index:

(1) Export a LIRC configuration as a text file, concatenate different RemoteSection.

  • Request URL:
    /lirc.conf
  • Request Method: GET
  • Parameters: ids (RemoteSection ids, separate by comma)
  • Output:Combined Configuration files content as String.
  • Sample Response:
    #
    # This config file has been automatically converted from a device file
    # found in the 06/26/00 release of the Windows Slink-e software
    # package.
    #
    # Many thanks to Colby Boles of Nirvis Systems Inc. for allowing us to
    # use these files.
    #
    # The original filename was: "3m mp8640 3m lcd projector.cde"
    #
    # The original description for this device was:
    #
    # 3m mp8640 3m lcd projector
    #
    
    
    
    begin remote
      name                    MP8640
      bits                    32
      flags                   SPACE_ENC
      eps                     20
      aeps                    200
    
      header                  8800 4400
      one                     550 1650
      zero                    550 550
      ptrail                  550
      repeat                  8800 2200
      gap                     38500
      toggle_bit              0
    
      frequency               38000
    
          begin codes
              STANDBY/ON              0x000000000AF5E817
              VOLUME'/\'              0x000000000AF548B7
              ...
    
          end codes
    
    end remote
    
    
    
    #
    # this config file was automatically generated
    # using lirc-0.6.6(serial) on Sat May 24 18:35:13 2003
    #
    # contributed by
    #
    # brand:                       Abit
    # model no. of remote control: ?
    # devices being controlled by this remote: AU10 audio card / windvd
    #
    
    
    begin remote
    
      name                    ABIT_WINDVD
      bits                    16
      flags                   SPACE_ENC|CONST_LENGTH
      eps                     30
      aeps                    100
    
      header                  9149 4422
      one                     666 1569
      zero                    666 474
      ptrail                  666
      pre_data_bits           16
      pre_data                0x807F
      gap                     108554
      toggle_bit              0
    
          begin codes
              OnOff                   0x000000000000E01F
              Mute                    0x00000000000010EF
              Title                   0x000000000000906F
              Screen                  0x00000000000050AF
              eject                   0x000000000000D02F
              ...
          end codes
    
    
    end remote
    
    

(2) List all hardware vendors in the database

  • Request URL:
    /lirc
  • Request Method: GET
  • Output:xml or json of a vendors list.
  • Sample Response:
    • content-type:application/xml
      <vendors>
          <vendor>
              <id>1</id>
              <name>3m</name>
          </vendor>
          <vendor>
              <id>2</id>
              <name>abit</name>
         </vendor>
         ...
      </vendors>
      
    • content-type:application/json
      {"vendors":
                {"vendor":[
                         {"id":1,
                          "name":"3m"
                         },
                         {"id":2,
                          "name":"abit"},
                         ...
                         ]
                }
      }
  • Errors:
    • Error Code:204, No Content. See HTTP/1.1 documentation.If system has no Vendor at all.

(3) List all models of a vendor in the database

  • Request URL:
    /lirc/{vendor_name}
  • Request Method: GET
  • Sample Response:
    • content-type:application/xml:
      <models>
        <model>
          <id>1</id>
          <name>MP8640</name>
        </model>
      </models>
      
    • content-type:application/json :
      {"models":
               {"model":{
                       "id":1,
                       "name":"MP8640"}
               }
       } 
  • Errors:
    • Error Code:404, Not Found. See HTTP/1.1 documentation. If system can't find such a Vendor .
    • Error Code:204, No Content. See HTTP/1.1 documentation. If this Vendor has no Model at all .

(4) List all RemoteSections of a model in the database

  • Request URL:
    /lirc/{vendor_name}/{model_name}
  • Request Method: GET
  • Sample Response:
    • content-type:application/xml:
      <sections>
         <section>
             <id>1</id>
             <comment>
      	    #
                  # This config file has been automatically converted from a device file.
      	    #...
      	</comment>
      	<name>MP8640</name>
      	<raw>false</raw>
          </section>
      </sections>
      
    • content-type:application/json :
      {"sections":
          {"section":
              {"id":1,
                "comment":"#\r\n# This config file has been automatically converted from a device file\r\n#...",
                "name":"MP8640",
                "raw":false
              }
          }
      }
      
  • Errors:
    • Error Code:404, Not Found. See HTTP/1.1 documentation. If system can't find such a RemoteSection .

(5) List all RemoteOptions of a RemoteSection in the database

  • Request URL:
     /lirc/{vendor_name}/{model_name}/{section_id}/options
  • Request Method: GET
  • Sample Response:
    • content-type:application/xml:
      <options>
        <option>
           <id>1</id>
           <comment></comment>
           <name>name</name>
           <value>MP8640</value>
         </option>
        ...
      <options>
      
    • content-type:application/json :
      {"options":
               {"option":[
                        {"id":1,
                         "comment":"",
                         "name":"name",
                         "value":"MP8640"},
                         ...
                        ]
               }
       }
      
  • Errors:
    • Error Code:204, No Content. See HTTP/1.1 documentation. If this RemoteSection has no RemoteOption at all .

(6) List all Codes of a Section in the database

  • Request URL:
     /lirc/{vendor_name}/{model_name}/{section_id}/codes
  • Request Method: GET
  • Sample Response:
    • content-type:application/xml:
      <codes>
        <code>
          <id>1</id>
          <comment></comment>
          <name>STANDBY/ON</name>
          <remoteName>MP8640</remoteName>
          <value>0x000000000AF5E817</value>
        </code>
        ...
      </codes>
      
    • content-type:application/json :
      {"codes":
             {"code":  [{"id":1,
                         "comment":"",
                         "name":"STANDBY\/ON",
                         "remoteName":"MP8640",
                         "value":"0x000000000AF5E817"
                         },
                         ...
                         ]
              }
      }
      
  • Errors:
    • Error Code:204, No Content. See HTTP/1.1 documentation. If this RemoteSection has no Code at all .

(7) List all icons identified by button command name (Included in M2)

  • Request URL:
     /icons/{icon_name}
  • Request Method: GET
  • Sample Response:
    • content-type:application/xml:
      <icons>
        <icon>
           <id>21</id>
           <fileName>http://localhost:8080/beehive/icons/menu.png</fileName>
           <name>menu</name>
        </icon>
        ...
      </icons>
      
    • content-type:application/json :
      {"icons":
              {"icon":
                    [{"id":21,
                     "fileName":"http:\/\/localhost:8080\/beehive\/icons\/menu.png",
                     "name":"menu"},
                    ...
                    ]
              }
      }
      
  • Errors:
    • Error Code:404, Not Found. See HTTP/1.1 documentation. If system can't find any icons.
    • Error Code:204, No Content. See HTTP/1.1 documentation. If this button has no icons at all .

(8) List all icons (Included in M2)

  • Request URL:
     /icons
  • Request Method: GET
  • Sample Response:
    • content-type:application/xml:
      <icons>
        <icon>
           <id>1</id>
           <fileName>http://localhost:8080/beehive/icons/power.png</fileName>
           <name>power</name>
        </icon>
        <icon>
           <id>2</id>
           <fileName>http://localhost:8080/beehive/icons/home.png</fileName>
           <name>home</name>
        </icon>
        ...
      </icons>
      
    • content-type:application/json :
      {"icons":
              {"icon":
                    [{"id":1,
                     "fileName":"http:\/\/localhost:8080\/beehive\/icons\/power.png",
                     "name":"power"},
                     {"id":2,
                     "fileName":"http:\/\/localhost:8080\/beehive\/icons\/home.png",
                     "name":"home"},
                    ...
                    ]
              }
      }
      
  • Errors:
    • Error Code:404, Not Found. See HTTP/1.1 documentation. If system can't find any icons.
    • Error Code:204, No Content. See HTTP/1.1 documentation. If this button has no icons at all .

Use JSONP format

JSON-P is a method of wrapping the JSON output of API calls to allow other developers to call cross site. To use JSON-P, developer should include a 'callback' as request parameter like this: http://localhost:8080/beehive/rest/lirc?callback=aaa
then response will be :

aaa && aaa({"vendors":{"vendor":[{"id":1,"name":"3m"},{"id":2,"name":"abit"}]}})
 
Labels: , , ,

Added by Dan Cong

Last edit by Dan Cong on Jun 30, 2010 13:02

Adaptavist Theme Builder Powered by Atlassian Confluence
Free theme builder license