-
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_ONLY
zum Aussenden einer Aktivierung
- Erwartet JSON-Repräsentation einer Aktivierung
-
timestamp
wird intern gesetzt, wird also beimPOST
nicht angegeben - Die Aktivierung wird nicht gespeichert, sondern nur direkt ausgesendet
{
"number": 12345,
"transmitterGroupNames": [
"group"
],
"timestamp": "Dec 24, 2015 1:37:31 PM"
}
GET
PUT
DELETE
http://DAPNET_CORE_SERVER.org/callsigns/[NAME]
-
USER_ONLY
zum Lesen und Erstellen -
OWNER_ONLY
zum Aktualisieren und Löschen -
pagers
werden fürUSER
nicht angezeigt
- Erwartet JSON-Repräsentation eines
CallSigns
-
GET
Abfrage ohne[NAME]
liefert alleCallSigns
{
"name": " name ",
"description": " description ",
"numeric": false,
"pagers": [{
"number": 1234567,
"name": " name "
}],
"ownerNames": [
"user "
]
}
GET
POST
http://DAPNET_CORE_SERVER.org/calls[?ownerName=NAME]
-
USER_ONLY
zum Erstellen -
OWNER_ONLY
zum Anzeigen der eigenenCalls
-
ADMIN_ONLY
zum Anzeigen allerCalls
- Erwartet JSON-Repräsentation eines
Calls
-
timestamp
undownerName
werden intern gesetzt, werden also beimPOST
nicht angegeben -
GET
Abfrage ohne?ownerName=NAME
liefert 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_version
und/api_version
{
"version": "1.1.3"
}
GET
POST
http://DAPNET_CORE_SERVER.org/news[?rubricName=NAME]
-
OWNER_ONLY
zum Anzeigen vonNews
aus der eigenenRubric
-
OWNER_ONLY
zum Erstellen vonNews
in der eigenenRubric
-
ADMIN_ONLY
zum Anzeigen allerNews
- Erwartet JSON-Repräsentation einer
News
-
timestamp
undownerName
werden intern gesetzt, werden also beimPOST
nicht angegeben -
GET
Abfrage ohne[?rubricName=NAME]
liefert alle News
{
"text": "text",
"rubricName": "rubricName",
"number": 1,
"timestamp": "Jul 26, 2015 3:24:14 PM",
"ownerName": "user"
}
GET
PUT
DELETE
http://DAPNET_CORE_SERVER.org/nodes/[NAME]
-
USER_ONLY
zum Lesen der vorhandenen News -
ADMIN_ONLY
zum Erstellen, Aktualisieren und Löschen -
key
undaddress
werden fürUSER
nicht angezeigt
- Erwartet JSON-Repräsentation eines
Nodes
-
key
wird intern als Hash gespeichert, beim Erstellen wird die Angabe des gewünschten Keys im Klartext erwartet -
address
wird automatisch ermittelt und muss beim Erstellen nicht angegeben werden -
GET
Abfrage 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"
]
}
GET
PUT
DELETE
http://DAPNET_CORE_SERVER.org/rubrics/[NAME]
-
USER_ONLY
zum Lesen -
OWNER_ONLY
zum Aktualisieren und Löschen -
ADMIN_ONLY
zum Erstellen
- Erwartet JSON-Repräsentation einer
Rubric
-
GET
Abfrage ohne[NAME]
liefert alleRubric
s
{
"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 OK
zurück falls ausgesandt, jedoch mit leerem body
GET
PUT
DELETE
http://DAPNET_CORE_SERVER.org/tranmitterGroups/[NAME]
-
USER_ONLY
zum Lesen und Erstellen -
OWNER_ONLY
zum Aktualisieren und Löschen
- Erwartet JSON-Repräsentation einer
TransmitterGroup
-
GET
Abfrage ohne[NAME]
liefert alleTransmitterGroup
s
{
"name": "name",
"description": "description",
"transmitterNames": [
"transmitterName"
],
"ownerNames": [
"user"
]
}
GET
PUT
DELETE
http://DAPNET_CORE_SERVER.org/transmitters/[NAME]
-
USER_ONLY
zum Lesen und Erstellen -
OWNER_ONLY
zum Aktualisieren und Löschen -
address
wird fürUSER
nicht angezeigt
- Erwartet JSON-Repräsentation eines
Transmitter
s -
status
wird intern gesetzt, wird also beimPUT
nicht angegeben -
GET
Abfrage ohne[NAME]
liefert alleTransmitter
-
ip_addr
akzeptiert 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"
}
GET
PUT
DELETE
http://DAPNET_CORE_SERVER.org/users/[NAME]
-
USER_ONLY
zum Lesen und Erstellen -
OWNER_ONLY
zum Aktualisieren und Löschen -
ADMIN_ONLY
zum Erstellen vonUser
n mit Administrationsrechten -
hash
wird fürUSER
nicht angezeigt
- Erwartet JSON-Repräsentation eines Users
-
hash
wird intern berechnet, beim Erstellen wird die Angabe des gewünschten Passworts unterhash
erwartet- Wird
hash
bei einem existierendenUser
leer gelassen, so wird das Passwort nicht geändert
- Wird
-
GET
Abfragen ohne[NAME]
liefert alleUser
{
"name": "user",
"mail": "user@user.de",
"admin": true
}
{
"name": "user",
"hash": "*************",
"mail": "user@user.de",
"admin": true
}