This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
specifications:uri [2016/03/20 03:29] Guvalif removed |
specifications:uri [2016/12/08 10:46] (current) Guvalif |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| <markdown> | <markdown> | ||
| URI Definition | URI Definition | ||
| - | ============== | + | =============================================================================== |
| - | Edit me. | + | Basic Specification |
| + | ------------------------------------------------------------------------------- | ||
| + | |||
| + | Network host of Control Server is normally **"localhost (127.0.0.1)"**. | ||
| + | Its port is decided by `port` property written in **config.json**. (Default value is 17264.) | ||
| + | |||
| + | The server provides REST API. | ||
| + | Thus, anyone can use each resource and command using following syntax. | ||
| + | |||
| + | ``` | ||
| + | http://<HOST>:<PORT>/<VERSION>/<INSTANCE>/...(/<METHOD>) | ||
| + | ``` | ||
| + | |||
| + | `<VERSION>` is string of API version. | ||
| + | Basically its keeps pace to major version of the application. | ||
| + | (For-instance: In **ControlServer_Win_v2.0.1**, `<VERSION>` is **v2**.) | ||
| + | |||
| + | ### Returned JSON Format When Get a Resource | ||
| + | |||
| + | When you create GET request, the server returns JSON like below. | ||
| + | |||
| + | ```json | ||
| + | { | ||
| + | "resource": <RESOURCE_NAME:string>, | ||
| + | "data": <DATA:json> | ||
| + | } | ||
| + | ``` | ||
| + | |||
| + | ### Returned JSON Format When a Command Runs | ||
| + | |||
| + | When you create HTTP request (not GET) or call each command, the server returns JSON like below. | ||
| + | |||
| + | ```json | ||
| + | { | ||
| + | "resource": <RESOURCE_NAME:string>, | ||
| + | "data": { | ||
| + | "command": <COMMAND_NAME:string>, | ||
| + | "result": <RESULT:boolean> | ||
| + | } | ||
| + | } | ||
| + | ``` | ||
| + | |||
| + | |||
| + | Resources List | ||
| + | ------------------------------------------------------------------------------- | ||
| + | |||
| + | ### Command-line Stream (cmdstream) | ||
| + | |||
| + | Could be gotten WebSocket based stream resource that controls PLEN. | ||
| + | |||
| + | Sending command name and each argument with **/ (slash)** as separator, | ||
| + | you can call directly commands implemented by Python. | ||
| + | ([See also...](https://github.com/plenprojectcompany/plen-ControlServer/blob/master/control_server/drivers/abstract.py)) | ||
| + | |||
| + | ```javascript | ||
| + | var socket = new WebSocket('ws://localhost:17264/v2/cmdstream'); | ||
| + | |||
| + | socket.send('<METHOD_NAME>/<PARAM_0>/<PARAM_1>/...'); | ||
| + | ``` | ||
| + | |||
| + | Returned value is stringified returned value on Python runtime environment. | ||
| + | |||
| + | ### Motion (motions) | ||
| + | |||
| + | Could be gotten motion resource that defines PLEN's movement. | ||
| + | Please set slot number you want to access to `<SLOT:integer>`. | ||
| + | |||
| + | ``` | ||
| + | http://localhost:17264/v2/motions/<SLOT:integer> | ||
| + | ``` | ||
| + | |||
| + | |HTTP Request|Operation | | ||
| + | |:-----------|:-----------------------------------------------------------| | ||
| + | |**GET** |Get a motion resource. | | ||
| + | |**DELETE** |Delete a motion resource. (Overwrite empty motion actually.)| | ||
| + | |**PUT** |Overwrite a motion resource. | | ||
| + | |||
| + | ``` | ||
| + | http://localhost:17264/v2/motions/<SLOT:integer>/play | ||
| + | http://localhost:17264/v2/motions/stop | ||
| + | ``` | ||
| + | |||
| + | |Commands|Operation | | ||
| + | |:-------|:-------------| | ||
| + | |**play**|Play a motion.| | ||
| + | |**stop**|Stop a motion.| | ||
| + | |||
| + | ### Version Information (version) | ||
| + | |||
| + | Could be gotten version information resource. | ||
| + | |||
| + | ``` | ||
| + | http://localhost:17264/v2/version | ||
| + | ``` | ||
| + | |||
| + | |HTTP Request|Operation | | ||
| + | |:-----------|:-------------------------------| | ||
| + | |**GET** |Get version information of PLEN.| | ||
| + | |||
| + | ### Construction Information of the Server (metadata) | ||
| + | |||
| + | Could be gotten server information resources below. | ||
| + | |||
| + | - API version | ||
| + | - Required firmware version of PLEN | ||
| + | |||
| + | ``` | ||
| + | http://localhost:17264/v2/metadata | ||
| + | ``` | ||
| + | |||
| + | |HTTP Request|Operation | | ||
| + | |:-----------|:------------------------------------------| | ||
| + | |**GET** |Get construction information of the server.| | ||
| + | |||
| + | |||
| + | Commands List (Doable by Itself) | ||
| + | ------------------------------------------------------------------------------- | ||
| + | |||
| + | ### Connect to PLEN (connect) | ||
| + | |||
| + | ``` | ||
| + | http://localhost:17264/v2/connect | ||
| + | ``` | ||
| + | |||
| + | ### Disconnect from PLEN (disconnect) | ||
| + | |||
| + | ``` | ||
| + | http://localhost:17264/v2/disconnect | ||
| + | ``` | ||
| </markdown> | </markdown> | ||