Jump to: navigation, search

Difference between revisions of "Mihini/REST API"

(Application container)
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This page describes the current status of the Mihini REST service
+
This page describes the current status of the Mihini agent REST service. The Mihini agent REST exposes agent services by a REST API.
  
 +
== Specifications  ==
  
== Specifications ==
+
=== Returned values  ===
  
 +
Each REST function returns the same value as the function to which it corresponds, except that it is serialized with JSON
  
 +
== API  ==
  
=== Returned values ===
+
See below a list of the current Lua API with their corresponding REST API
  
Each REST function returns the same value as the function to which it corresponds, except that it is serialized with JSON
+
=== Devicetree ===
 
+
== API ==
+
 
+
See below a list of the current Lua API with their corresponding REST API
+
 
+
=== Devicetree ===
+
  
 
{| border="1" cellspacing="0" cellpadding="5"
 
{| border="1" cellspacing="0" cellpadding="5"
 
|-
 
|-
! Module API
+
! Module API  
! REST URL
+
! REST URL  
! HTTP method
+
! HTTP method  
 
! HTTP payload
 
! HTTP payload
|-  
+
|-
| devicetree.get("node.subnode.leaf")
+
| devicetree.get("node.subnode.leaf")  
| devicetree/node/subnode/leaf
+
| devicetree/node/subnode/leaf  
| GET
+
| GET  
 
| Nothing
 
| Nothing
 
|-
 
|-
| devicetree.set("node.subnode.leaf", "myvalue")
+
| devicetree.set("node.subnode.leaf", "myvalue")  
| devicetree/node/subnode/leaf
+
| devicetree/node/subnode/leaf  
| PUT
+
| PUT  
 
| The new value of "node.subnode.leaf" serialiazed with JSON
 
| The new value of "node.subnode.leaf" serialiazed with JSON
 
|}
 
|}
Line 44: Line 41:
 
|-
 
|-
 
| appcon.list()  
 
| appcon.list()  
| application
+
| application  
 
| GET  
 
| GET  
 
| Nothing
 
| Nothing
Line 56: Line 53:
 
| application/id/start  
 
| application/id/start  
 
| PUT  
 
| PUT  
| Nothing
+
| Empty JSON table ({ }) or empty JSON string ""<br>
 
|-
 
|-
 
| appcon.stop("id")  
 
| appcon.stop("id")  
 
| application/id/stop  
 
| application/id/stop  
 
| PUT  
 
| PUT  
| Nothing
+
|  
 +
Empty JSON table ({ }) or empty JSON string ""
 +
 
 
|-
 
|-
 
| appcon.configure("id", autostart)  
 
| appcon.configure("id", autostart)  
Line 69: Line 68:
 
|}
 
|}
  
=== Update ===
+
=== Update ===
  
 
{| border="1" cellspacing="0" cellpadding="5"
 
{| border="1" cellspacing="0" cellpadding="5"
 
|-
 
|-
! Module API
+
! Module API  
! REST URL
+
! REST URL  
! URL parameter
+
! URL parameter  
! HTTP method
+
! HTTP method  
 
! HTTP payload
 
! HTTP payload
|-  
+
|-
| update.localupdate(path, sync)
+
| update.localupdate(path, sync)  
| update/
+
| update/  
| sync=[0-1] (optional, asynchronous by default)
+
| sync=[0-1] (optional, asynchronous by default)  
| POST
+
| POST  
 
| The tar archive sent as binary data in a http chunked request
 
| The tar archive sent as binary data in a http chunked request
 
|-
 
|-
| update.getstatus()
+
| update.getstatus()  
| update/
+
| update/  
| sync=[0-1] (optional, asynchronous by default)
+
| sync=[0-1] (optional, asynchronous by default)  
| GET
+
| GET  
 
| Nothing
 
| Nothing
 
|}
 
|}
  
== Configuration ==
+
== Configuration ==
  
Everything is configurable in the config store
+
Everything is configurable in the config store  
  
=== defaultconfig.lua ===
+
=== defaultconfig.lua ===
<pre style="width: 45em;">
+
<pre style="width: 45em;">-- REST related settings
-- REST related settings
+
 
rest = {}
 
rest = {}
 
rest.activate = true
 
rest.activate = true
 
rest.port = 8357
 
rest.port = 8357
</pre>
+
</pre>  
 
+
=== Lua shell ===
=== Lua shell ===
+
<pre style="width: 45em;">$ telnet localhost 2000
<pre style="width: 45em;">
+
&gt;&nbsp;:agent.config.rest.activate
$ telnet localhost 2000
+
> :agent.config.rest.activate
+
 
true
 
true
> :agent.config.rest.port
+
&gt;&nbsp;:agent.config.rest.port
 
8357
 
8357
</pre>
+
</pre>  
 
+
== Suggestions ==
== Suggestions ==
+
  
 
Feel free to send your feedbacks on the Mihini mailing list, suggestions for improvements are always welcome
 
Feel free to send your feedbacks on the Mihini mailing list, suggestions for improvements are always welcome

Latest revision as of 04:34, 8 August 2013

This page describes the current status of the Mihini agent REST service. The Mihini agent REST exposes agent services by a REST API.

Specifications

Returned values

Each REST function returns the same value as the function to which it corresponds, except that it is serialized with JSON

API

See below a list of the current Lua API with their corresponding REST API

Devicetree

Module API REST URL HTTP method HTTP payload
devicetree.get("node.subnode.leaf") devicetree/node/subnode/leaf GET Nothing
devicetree.set("node.subnode.leaf", "myvalue") devicetree/node/subnode/leaf PUT The new value of "node.subnode.leaf" serialiazed with JSON

Application container

Module API REST URL HTTP method HTTP payload
appcon.list() application GET Nothing
appcon.status("id") application/id GET Nothing
appcon.start("id") application/id/start PUT Empty JSON table ({ }) or empty JSON string ""
appcon.stop("id") application/id/stop PUT

Empty JSON table ({ }) or empty JSON string ""

appcon.configure("id", autostart) application/id/configure PUT A boolean value corresponding to "autostart" and serialized with JSON

Update

Module API REST URL URL parameter HTTP method HTTP payload
update.localupdate(path, sync) update/ sync=[0-1] (optional, asynchronous by default) POST The tar archive sent as binary data in a http chunked request
update.getstatus() update/ sync=[0-1] (optional, asynchronous by default) GET Nothing

Configuration

Everything is configurable in the config store

defaultconfig.lua

-- REST related settings
rest = {}
rest.activate = true
rest.port = 8357

Lua shell

$ telnet localhost 2000
> :agent.config.rest.activate
true
> :agent.config.rest.port
8357

Suggestions

Feel free to send your feedbacks on the Mihini mailing list, suggestions for improvements are always welcome