-
Notifications
You must be signed in to change notification settings - Fork 11
Beschreibung der REST API
Die Festlegung bzw. Angabe des Identikators (meist der Name) erfolgt über die URI und nicht über die JSON Repräsentation. Eventuelle Angaben werden ignoriert.
Unter http://DAPNET_CORE_SERVER.org/application.wadl lässt sich eine automatisch generierte Beschreibung der Schnittstelle in der Web Application Description Language (WADL) abrufen.
POST
http://DAPNET_CORE_SERVER.org/activation
-
USER_ONLYzum Aussenden einer Aktivierung
- Erwartet JSON-Repräsentation einer Aktivierung
-
timestampwird intern gesetzt, wird also beimPOSTnicht angegeben - Die Aktivierung wird nicht gespeichert, sondern nur direkt ausgesendet
{
"number": 12345,
"transmitterGroupNames": [
"group"
],
"timestamp": "Dec 24, 2015 1:37:31 PM"
}GETPUTDELETE
http://DAPNET_CORE_SERVER.org/callsigns/[NAME]
-
USER_ONLYzum Lesen und Erstellen -
OWNER_ONLYzum Aktualisieren und Löschen -
pagerswerden fürUSERnicht angezeigt
- Erwartet JSON-Repräsentation eines
CallSigns -
GETAbfrage ohne[NAME]liefert alleCallSigns
{
"name": " name ",
"description": " description ",
"numeric": false,
"pagers": [{
"number": 1234567,
"name": " name "
}],
"ownerNames": [
"user "
]
}GETPOST
http://DAPNET_CORE_SERVER.org/calls[?ownerName=NAME]
-
USER_ONLYzum Erstellen -
OWNER_ONLYzum Anzeigen der eigenenCalls -
ADMIN_ONLYzum Anzeigen allerCalls
- Erwartet JSON-Repräsentation eines
Calls -
timestampundownerNamewerden intern gesetzt, werden also beimPOSTnicht angegeben -
GETAbfrage ohne?ownerName=NAMEliefert alleCalls
{
"text ": "text",
"callSignNames": [
"callSignName"
],
"transmitterGroupNames": [
"transmitterGroupName"
],
"emergency": false,
"timestamp": "Jul 30, 2015 10:57:45 AM",
"ownerName": "user"
}GET
http://DAPNET_CORE_SERVER.org/core
-
/version: Liefert die Version der DAPNET Cores und der API -
/core_version: Liefert die Version der DAPNET Cores -
/api_version: Liefert die Version der REST API
EVERYBODY
/version
{
"core": "1.1.3.10",
"api": "1.1.3"
}-
/core_versionund/api_version
{
"version": "1.1.3"
}GETPOST
http://DAPNET_CORE_SERVER.org/news[?rubricName=NAME]
-
OWNER_ONLYzum Anzeigen vonNewsaus der eigenenRubric -
OWNER_ONLYzum Erstellen vonNewsin der eigenenRubric -
ADMIN_ONLYzum Anzeigen allerNews
- Erwartet JSON-Repräsentation einer
News -
timestampundownerNamewerden intern gesetzt, werden also beimPOSTnicht angegeben -
GETAbfrage ohne[?rubricName=NAME]liefert alle News
{
"text": "text",
"rubricName": "rubricName",
"number": 1,
"timestamp": "Jul 26, 2015 3:24:14 PM",
"ownerName": "user"
}GETPUTDELETE
http://DAPNET_CORE_SERVER.org/nodes/[NAME]
-
USER_ONLYzum Lesen der vorhandenen News -
ADMIN_ONLYzum Erstellen, Aktualisieren und Löschen -
keyundaddresswerden fürUSERnicht angezeigt
- Erwartet JSON-Repräsentation eines
Nodes -
keywird intern als Hash gespeichert, beim Erstellen wird die Angabe des gewünschten Keys im Klartext erwartet -
addresswird automatisch ermittelt und muss beim Erstellen nicht angegeben werden -
GETAbfrage ohne[NAME]liefert alleNodes(bei nicht verbundenen Knoten wird keine IP und kein Port geliefert). - Mögliche Status:
PUT:ONLINE,SUSPENDED;GET:ONLINE,SUSPENDED,ERROR
{
"name": "name",
"longitude": "-45.12345678",
"latitude": "56.12345678",
"address": {
"ip_addr": "192.168.000.001",
"port": 7800
},
"status": "SUSPENDED",
"ownerNames": [
"dh3wr",
"dj7lc"
],
"version": "1.1.3.10"
}{
"name": "name",
"longitude": "-45.12345678",
"latitude": "56.12345678",
"address": {
"ip_addr": "192.168.000.001",
"port": 7800
},
"status": "SUSPENDED",
"ownerNames": [
"dh3wr",
"dj7lc"
]
}GETPUTDELETE
http://DAPNET_CORE_SERVER.org/rubrics/[NAME]
-
USER_ONLYzum Lesen -
OWNER_ONLYzum Aktualisieren und Löschen -
ADMIN_ONLYzum Erstellen
- Erwartet JSON-Repräsentation einer
Rubric -
GETAbfrage ohne[NAME]liefert alleRubrics
{
"name": "name",
"number": 1,
"transmitterGroupNames": [
"transmitterGroupName"
],
"label": "label",
"ownerNames": [
"user"
]
}GET
http://DAPNET_CORE_SERVER.org/stats
EVERYBODY
- Liefert die Statistiken der DAPNET Cores
{
"users": 618,
"calls": 284,
"callsTotal": 505331,
"callSigns": 544,
"news": 101,
"newsTotal": 0,
"rubrics": 69,
"nodesTotal": 12,
"nodesOnline": 10,
"transmittersTotal": 183,
"transmittersOnline": 93
}GET
http://DAPNET_CORE_SERVER.org/tranmitterControl/sendRubricNames/[NAME]
ADMIN_ONLY
- sendet Rubriknamen über gegebenen Transmitter
[NAME] - Gibt
200 OKzurück falls ausgesandt, jedoch mit leerem body
GETPUTDELETE
http://DAPNET_CORE_SERVER.org/tranmitterGroups/[NAME]
-
USER_ONLYzum Lesen und Erstellen -
OWNER_ONLYzum Aktualisieren und Löschen
- Erwartet JSON-Repräsentation einer
TransmitterGroup -
GETAbfrage ohne[NAME]liefert alleTransmitterGroups
{
"name": "name",
"description": "description",
"transmitterNames": [
"transmitterName"
],
"ownerNames": [
"user"
]
}GETPUTDELETE
http://DAPNET_CORE_SERVER.org/transmitters/[NAME]
-
USER_ONLYzum Lesen und Erstellen -
OWNER_ONLYzum Aktualisieren und Löschen -
addresswird fürUSERnicht angezeigt
- Erwartet JSON-Repräsentation eines
Transmitters -
statuswird intern gesetzt, wird also beimPUTnicht angegeben -
GETAbfrage ohne[NAME]liefert alleTransmitter -
ip_addrakzeptiert neben IP Adressen auch Domains (IP Adresse wird automatisch ermittelt)
{
"name": "name",
"authKey": "**********",
"longitude": "-45.12345678",
"latitude": "56.12345678",
"power": "100.123",
"nodeName": "nodeName",
"address": {
"ip_addr": "192.168.000.002",
"port": 1337
},
"timeSlot": "0123456789 ABCDEF",
"ownerNames": [
"user"
],
"deviceType": "UniPager-RaspagerV1",
"deviceVersion": "0.5.1",
"callCount": 666,
"status": "OFFLINE",
"antennaAboveGroundLevel": 42,
"antennaType": "OMNI",
"antennaDirection": 0,
"antennaGainDbi": 0,
"lastUpdate": "2016-07-18T18:07:30.656Z",
"usage": "WIDERANGE",
"identificationAddress": 1,
"lastConnected": "2018-02-26T18:07:34.187Z",
"connectedSince": "2018-02-26T18:07:34.187Z"
}GETPUTDELETE
http://DAPNET_CORE_SERVER.org/users/[NAME]
-
USER_ONLYzum Lesen und Erstellen -
OWNER_ONLYzum Aktualisieren und Löschen -
ADMIN_ONLYzum Erstellen vonUsern mit Administrationsrechten -
hashwird fürUSERnicht angezeigt
- Erwartet JSON-Repräsentation eines Users
-
hashwird intern berechnet, beim Erstellen wird die Angabe des gewünschten Passworts unterhasherwartet- Wird
hashbei einem existierendenUserleer gelassen, so wird das Passwort nicht geändert
- Wird
-
GETAbfragen ohne[NAME]liefert alleUser
{
"name": "user",
"mail": "user@user.de",
"admin": true
}{
"name": "user",
"hash": "*************",
"mail": "user@user.de",
"admin": true
}