WMC v3.x wiki
Introduction
Quick Start
System Management
Network Management
SNMP
Push
LoRa features
GMS API
Troubleshooting
Gateway software resources
WMC 3.2:
Server software resources
WMC 3.2:
FAQ
WMC 3.x:
WMC 3.0:
WMC 3.1:
>= WMC 3.2:
>= WMC 3.1:
Introduction
Quick Start
System Management
Network Management
SNMP
Push
LoRa features
GMS API
Troubleshooting
Gateway software resources
WMC 3.2:
WMC 3.1:
WMC 3.0:
Server software resources
WMC 3.2:
FAQ
WMC 3.x:
WMC 3.0:
WMC 3.1:
>= WMC 3.2:
>= WMC 3.1:
A RESTful Web services architecture follows basic design principles:
GET, POST, PUT, DELETE, …) and other HTTP standards The API version level is requested by the client using the accept HTTP header, for example here with API v1:
Accept: application/vnd.kerlink.iot-v1+json
GET https://kerlink.wanesy.fr/gms/application/customers/198/fleets?page=3&PageSize=40
This web service allows to get the page number 3 of the list of fleets of the customer 198.
| VERB | PROTOCOL | DOMAIN | PATH | QUERY STRING |
| GET | http | kerlink.wanesy.fr | /gms/application/customers/1/fleets | ?page=3&PageSize=40 |
The list of possible verbs is : GET, POST, PUT, DELETE, PATCH
POST: creates a new resource. GET: gets a resource. PUT: updates an existing resource. DELETE: deletes a resource. PATCH: updates a subset of fields of an existing resource.
These examples use the command-line program curl to make HTTP requests.
The use of the API is bound to a fresh token. Here is how you can request for a new token:
curl -s 'https://kerlink.wanesy.fr/gms/application/login' \ -H 'Accept: application/vnd.kerlink.iot-v1+json' \ -X POST \ -d '{"login":"jdoe","password":"P@ssW0rd5ecRe7"}' \ -H 'Content-Type: application/vnd.kerlink.iot-v1+json' \ | jq .
Here jq is used to prettify the JSON output so that it is readable and indented:
{ "expiredDate": 1500537180050, "tokenType": "Bearer", "token": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJzdXBlcmFkbW ... n6i5WboHR-I" }
curl -s 'https://kerlink.wanesy.fr/gms/application/customers' \ -H 'Accept: application/vnd.kerlink.iot-v1+json' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJzdXBlcmFkbW ... n6i5WboHR-I' \ | jq .
Result:
{ "count": 2, "pageSize": 50, "page": 1, "totalCount": 2, "list": [ { "id": 130, ... } ], "nbPages": 1 }
$ curl -s 'https://kerlink.wanesy.fr/gms/application/authenticatedUser' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJzdXBlcmFkbW ... n6i5WboHR-I' \ -H 'Content-Type: application/vnd.kerlink.iot-v1+json;charset=UTF-8' \ -H 'Accept: application/json, text/plain, */*' \ | jq '.links[] | select(.rel=="customer") | .href'
The jq filter is used to show only customer ID information. In fact, it will display the href value for all links objects for which the rel key has the customer value.
Example result with customer ID number 23:
"/application/customers/23"
Not all fields in TxMessageDto are required when creating a new TX message. The actual parameters to send are:
confirmed: boolean, whether the TX message should be acknowledged (confirmed data transfer) contentType: enum { TEXT, HEXA }, describes how the payload is encodedport: integer, LoRaWAN application port numberpayload: string, data payload, either encoded as an hex string or binary data in base64maxAttempts: integer (optional), maximum number of transmission attempts. Only required if confirmed is true. ttl: integer (optional), time to live. Only required if confirmed is true.No other parameter is supported.