Files
smargopolo/python_algorithms/RESTful/RESTAPI.md
2020-02-28 15:12:10 +01:00

226 lines
3.1 KiB
Markdown

# RESTful API for NewGon:
**http Methods:**
- `GET` - get ressource
- `POST` - create a new ressource
- `DELETE` - deleting ressources
# GETTING information
## Getting the full status of NewGon:
**Definition**
`GET /newgon
**Responses**
- `200 OK` - on success
```json
{
"MODE":1,
"target": {
"SHX":0,
"SHY":0,
"SHZ":18,
"CHI":10,
"PHI":0,
"OMEGA":0,
"OX":0,
"OY":0,
"OZ":0,
"s1":12,
"s2":13,
"s3":14,
"s4":15,
"phimotor":11,
"omegamotor":180
},
"readback": {
"s1":12,
"s2":13,
"s3":14,
"s4":15,
"phimotor":11,
"omegamotor":180
},
"cyclecount":123456789,
"status":"Ready"
}
```
## Getting target values of NewGon:
**Definition**
`GET /newgon/target`
**Response**
- `200 OK` on success
```json
{
"target": {
"SHX":0,
"SHY":0,
"SHZ":18,
"CHI":10,
"PHI":0,
"OMEGA":0,
"OX":0,
"OY":0,
"OZ":0,
"s1":12,
"s2":13,
"s3":14,
"s4":15,
"phimotor":11,
"omegamotor":180
}
}
```
## Getting readback values of NewGon:
**Definition**
`GET /newgon/readback`
**Response**
- `200 OK` on success
```json
{
"readback": {
"s1":12,
"s2":13,
"s3":14,
"s4":15,
"phimotor":11,
"omegamotor":180,
"timestamp": "102020200"
}
}
```
# SETTING INFORMATION
## Setting the operation MODE NewGon
**Definition**
`POST /newgon/MODE`
`POST /newgon/mode`
**Arguments**
mode=1
or
```json
{
"MODE":1,
}
```
**Responses**
- `200 OK` - on success
- `404 Not Found` if the variable does not exist
## Setting target values to NewGon
**Definition**
`POST /newgon/target`
**Arguments**
```json
{
"target": {
"SHX":0,
"SHY":0,
"SHZ":18,
"CHI":10,
"PHI":0,
"OMEGA":0,
"OX":0,
"OY":0,
"OZ":0,
"s1":12,
"s2":13,
"s3":14,
"s4":15,
"phimotor":11,
"omegamotor":180
}
}
```
**Responses**
- `200 OK` - on success
- `404 Not Found` if the variable does not exist
## Setting individual varibles to NewGon
**Definition**
`POST /newgon/target`
**Arguments**
```json
{
"MODE":1,
"SHX":2
}
```
```json
{
"SHX":2.2,
"message":"SHX->2.2."
}
```
# USING Command mode
For Streams, paths, etc.
**Definition**
`POST /newgon/mode?mode=5`
`POST /newgon/path`
**Arguments**
```json
{
"gridO":{"start" : [0 1 1],
"u" : [0.1 0 0],
"v" : [0 0.1 0],
"n_u" : 10,
"n_v" : 1,
"f" : 10
},
"gridSH": {"start" : [0 1 1],
"u" : [0.1 0 0],
"v" : [0 0.1 0],
"n_u" : 10,
"n_v" : 1,
"f" : 10
},
"path": [
{"OX":1,"OY":2,"OZ":3},
{"OX":2,"OY":2,"OZ":1},
{"OX":3,"OY":2,"OZ":1},
{"OX":4,"OY":2,"OZ":2},
{"OX":5,"OY":2,"OZ":3},
{"OX":6,"OY":2,"OZ":4},
{"OX":1,"OY":2,"OZ":3}
],
"SHX":2
}
```