...
The following request carries two data fields, each contains a key value pair, together they deliver the authentification credentials.
Code Block | ||||
---|---|---|---|---|
| ||||
curl -c cfile \
-s \
-X POST 'https://sandbox.sensor.awi.de/rest/sensors/contacts/login'\
-o /dev/null \
-d 'username=<yourUserName>' \
-d 'authPassword=yourSecretPassword' |
The cfile looks like this:
Code Block | ||||
---|---|---|---|---|
| ||||
# Netscape HTTP Cookie File
# https://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.
sandbox.sensor.awi.de FALSE /sensorManagement-web FALSE 0 JSESSIONID RaCR4vWoHo7xKn92ohy2izuxjldw68olmHDjhA0.frame-test1
.awi.de TRUE / FALSE 1670407206 x-auth-token af9d8dce8jalf78271057345p5444022 |
...
and can be removed after successful operation by
Code Block | ||||
---|---|---|---|---|
| ||||
rm -v cfile |
...
This gets basic information about an item.
Code Block | ||||
---|---|---|---|---|
| ||||
curl -X GET 'https://sandbox.sensor.awi.de/rest/sensors/item/getItem/456' |
...
or nicely parsed (because piped into jq
):
Code Block | ||||
---|---|---|---|---|
| ||||
curl -X GET 'https://sandbox.sensor.awi.de/rest/sensors/item/getItem/456' | jq . |
...
You need proper privileges to modify items.
...
-b
: a submitted cookie (remember the login cfile?)-X
: which type of http request is performed, in this case PUT
-H
: header for the request, in this case-d
: introduces a data field that is submitted along the PUT
request, this is literally the submitted jsonCode Block | ||||
---|---|---|---|---|
| ||||
curl -b cfile \
-X PUT 'https://sandbox.sensor.awi.de/rest/sensors/item/createItem' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{"description": "string", "shortName": "testnastring" , "longName": "string" , "serialNumber": "string" , "manufacturer": "string" , "parentID": 0 , "applicationTypeID": 0 , "model": "string" , "inventoryNumber": "string" , "itemStatusID": 2 , "itemTypeID": 110 , "id": 0 }' |
...
https://sandbox.sensor.awi.de/rest/sensors/item/getAllItemStatuses
, in this case 2 refers to constructionhttps://sandbox.sensor.awi.de/rest/sensors/item/getAllItemCategories
, in this case 110 is a sediment_grab...
-b
: locally stored cookie file-X
: which type of http request is performed, in this case DELETE
-H
: headerCode Block | ||||
---|---|---|---|---|
| ||||
curl -b cfile \
-X DELETE \
-H 'Accept: application/json' \
'https://sandbox.sensor.awi.de/rest/sensors/contacts/deleteContactFromDevice/10877/80/29' |
...
...
The carried body contains the authentification credentials as a dict
element. The auth cookie is then extracted (theToken
) from the response of the POST
request (see http requests).
Code Block | ||||
---|---|---|---|---|
| ||||
import requests
import json
auth = requests.post('https://sandbox.sensor.awi.de/rest/sensors/contacts/login'
, data = {'username': <yourUserName>, 'authPassword': <yourSecretPassword>}
)
theToken = auth.cookies['x-auth-token'] |
...
This gets basic information about an item. The result is a dictionary object.
Code Block | ||||
---|---|---|---|---|
| ||||
a = requests.get('https://sandbox.sensor.awi.de/rest/sensors/item/getItem/456')
theItem = json.loads(a.content) |
...
You need proper privileges to modify items.
This puts a new item to sensor.awi.de.
...
.
Code Block | ||||
---|---|---|---|---|
| ||||
requests.put('https://sandbox.sensor.awi.de/rest/sensors/item/createItem'
, data = json.dumps({
"description": "string"
, "shortName": "anotherteststring"
, "longName": "string"
, "serialNumber": "string"
, "manufacturer": "string"
, "parentID": 0
, "applicationTypeID": 0
, "model": "string"
, "inventoryNumber": "string"
, "itemStatusID": 2
, "itemTypeID": 110
, "id": 0
})
, headers = {"content-type": "application/json"}
, cookies = {'x-auth-token': theToken}
) |
...
https://sandbox.sensor.awi.de/rest/sensors/item/getAllItemStatuses
, in this case 2 refers to constructionhttps://sandbox.sensor.awi.de/rest/sensors/item/getAllItemCategories
, in this case 110 is a sediment_grab...
This deletes a certain user with a specific role from a certain item.
Code Block | ||||
---|---|---|---|---|
| ||||
requests.delete('https://sandbox.sensor.awi.de/rest/sensors/contacts/deleteContactFromDevice/10877/80/29'
, cookies = {'x-auth-token': theToken}
, headers = {'content-type': 'application/json'}
) |
...
...
The carried body contains the authentification credentials as a list element. The auth cookie is then extracted (theToken
) from the response of the POST
request (see http requests).
Code Block | ||||
---|---|---|---|---|
| ||||
library('httr')
x <- POST(url = 'https://sandbox.sensor.awi.de/rest/sensors/contacts/login'
, body = list("username" = '<yourUserName>', "authPassword" = 'yourSecretPassword')
, encode = "form"
)
theToken <- x$cookies$value[2] |
...
This gets basic information about an item. The result is a list object.
Code Block | ||||
---|---|---|---|---|
| ||||
GET(url = 'https://sandbox.sensor.awi.de/rest/sensors/item/getItem/456') |
You need proper privileges to modify items.
...
url
: the API endpoint to calladd_headers
: contains the wrapped auth cookiebody
: a list (that is then translated to json) that holds the info about the item to be createdencode
: indicates how the submitted values are encoded, in this case we preferred jsonCode Block | ||||
---|---|---|---|---|
| ||||
PUT(url = 'https://sandbox.sensor.awi.de/rest/sensors/item/createItem'
, add_headers("x-auth-token" = theToken)
, body = list(description= "string"
, shortName = "testnashalalastring"
, longName = "string"
, serialNumber = "string"
, manufacturer = "string"
, parentID = 0
, applicationTypeID = 0
, model = "string"
, inventoryNumber = "string"
, itemStatusID = 2
, itemTypeID = 110
, id= 0
)
, encode = 'json'
) |
...
https://sandbox.sensor.awi.de/rest/sensors/item/getAllItemStatuses
, in this case 2 refers to constructionhttps://sandbox.sensor.awi.de/rest/sensors/item/getAllItemCategories
, in this case 110 is a sediment_grab...
This deletes a certain user with a specific role from a certain item.
Code Block | ||||
---|---|---|---|---|
| ||||
DELETE(url = 'https://sandbox.sensor.awi.de/rest/sensors/contacts/deleteContactFromDevice/10877/80/29'
, add_headers("x-auth-token" = theToken)
) |
...
...