Niniejsza dokumentacja opisuje REST API dla odbiornika danych IoT. API umożliwia przesyłanie danych w formatach JSON, tekstowym oraz jako formularze, a także umożliwia przesyłanie danych w trybie wsadowym (bulk).
Zobacz też: Przesyłanie danych
Przetwarza dane w formacie JSON.
URL: /api/receiver/io
Metoda HTTP: POST
Nagłówki:
Authorization
: Klucz autoryzacyjny (opcjonalny w zależności od konfiguracji)X-device-eui
: EUI urządzenia (opcjonalny w zależności od konfiguracji)Treść żądania:
{
"dev_eui": "string",
"gateway_eui": "string",
"timestamp": "long",
"clientname": "string",
"payload": "string",
"hex_payload": "string",
"payload_fields": [
{
"name": "string",
"value": "string"
}
]
}
Treść odpowiedzi:
200 OK
– Sukces401 Unauthorized
– Brak nagłówka autoryzacyjnego404 Not Found
– Urządzenie nieznane lub nieaktywne400 Bad Request
– Błąd w przetwarzaniu danychPrzetwarza dane w formacie tekstowym.
URL: /api/receiver/io
Metoda HTTP: POST
Nagłówki:
Authorization
: Klucz autoryzacyjny (opcjonalny w zależności od konfiguracji)X-device-eui
: EUI urządzenia (opcjonalny w zależności od konfiguracji)X-data-separator
: Separator danych (opcjonalny)Treść żądania: Tekst
Treść odpowiedzi:
200 OK
– Sukces401 Unauthorized
– Brak nagłówka autoryzacyjnego404 Not Found
– Urządzenie nieznane lub nieaktywne400 Bad Request
– Błąd w przetwarzaniu danychPrzetwarza dane przesłane jako formularz.
URL: /api/receiver/io
Metoda HTTP: POST
Nagłówki:
Authorization
: Klucz autoryzacyjny (opcjonalny w zależności od konfiguracji)X-device-eui
: EUI urządzenia (opcjonalny w zależności od konfiguracji)Treść żądania: Formularz URL-encoded
Treść odpowiedzi:
200 OK
– Sukces401 Unauthorized
– Brak nagłówka autoryzacyjnego404 Not Found
– Urządzenie nieznane lub nieaktywne400 Bad Request
– Błąd w przetwarzaniu danychPrzetwarza dane w formacie JSON.
URL: /api/receiver/in
Metoda HTTP: POST
Nagłówki:
Authorization
: Klucz autoryzacyjny (opcjonalny w zależności od konfiguracji)X-device-eui
: EUI urządzenia (opcjonalny w zależności od konfiguracji)Treść żądania:
{
"dev_eui": "string",
"gateway_eui": "string",
"timestamp": "long",
"clientname": "string",
"payload": "string",
"hex_payload": "string",
"payload_fields": [
{
"name": "string",
"value": "string"
}
]
}
Treść odpowiedzi:
200 OK
– Sukces401 Unauthorized
– Brak nagłówka autoryzacyjnego404 Not Found
– Urządzenie nieznane lub nieaktywne400 Bad Request
– Błąd w przetwarzaniu danychPrzetwarza dane w formacie tekstowym.
URL: /api/receiver/in
Metoda HTTP: POST
Nagłówki:
Authorization
: Klucz autoryzacyjny (opcjonalny w zależności od konfiguracji)X-device-eui
: EUI urządzenia (opcjonalny w zależności od konfiguracji)X-data-separator
: Separator danych (opcjonalny)Treść żądania: Tekst
Treść odpowiedzi:
200 OK
– Sukces401 Unauthorized
– Brak nagłówka autoryzacyjnego404 Not Found
– Urządzenie nieznane lub nieaktywne400 Bad Request
– Błąd w przetwarzaniu danychPrzetwarza dane przesłane jako formularz.
URL: /api/receiver/in
Metoda HTTP: POST
Nagłówki:
Authorization
: Klucz autoryzacyjny (opcjonalny w zależności od konfiguracji)X-device-eui
: EUI urządzenia (opcjonalny w zależności od konfiguracji)Treść żądania: Formularz URL-encoded
Treść odpowiedzi:
200 OK
– Sukces401 Unauthorized
– Brak nagłówka autoryzacyjnego404 Not Found
– Urządzenie nieznane lub nieaktywne400 Bad Request
– Błąd w przetwarzaniu danychPrzetwarza wsadowe przesyłanie danych w formacie CSV.
URL: /api/receiver/bulk
Metoda HTTP: POST
Nagłówki:
Authorization
: Klucz autoryzacyjny (opcjonalny w zależności od konfiguracji)X-device-eui
: EUI urządzeniaTreść żądania: Dane multipart/form-data
Treść odpowiedzi:
200 OK
– Sukces401 Unauthorized
– Brak nagłówka autoryzacyjnego404 Not Found
– Urządzenie nieznane lub nieaktywne400 Bad Request
– Błąd w przetwarzaniu danychThe ReceiverResourceTtn
class provides REST API endpoints for receiving and processing IoT data from The Things Network (TTN). This API supports options and POST requests for handling data and authorization.
Receives IoT data in JSON format, decodes it, transforms it into an internal format, and processes it. If authorization is required, the request must include an Authorization header.
URL /api/receiver/ttn3/up
Metoda POST
Nagłówki żądania
Authorization
(optional if device.authorization.required
is false
): Authorization token.Treść żadania - application/json
Wynik text/plain
Odpowiedzi
200 OK
"OK"
if data processing is successful.400 Bad Request
"error while reading the data"
if the data cannot be read.401 Unauthorized
"no authorization header found"
if authorization is required but the header is missing or blank.500 Internal Server Error
"error while processing the data"
if an error occurs during data processing.URL: /api/receiver/chirpstack
Metoda HTTP: POST
Nagłówki
Authorization
: Klucz autoryzacyjny (opcjonalny w zależności od konfiguracji)Parametry zapytania
event
: (Required) Specifies the type of event. Supported values are up
and join
.Treść żądania
Kod odpowiedzi
200 OK
- Indicates that the request was successfully processed.400 Bad Request
event
parameter is missing or if there is an error while reading the data.{"message": "event parameter missing"}
401 Unauthorized
Authorization
header is missing or blank.{"message": "no authorization header found"}
500 Internal Server Error
- Returned if there is an error while processing the data.Żądanie:
curl -X POST "http://example.com/api/receiver/io" \
-H "Authorization: 0102030405" \
-H "X-device-eui: ABC123" \
-H "Content-Type: application/json" \
-d '{
"dev_eui": "ABC123",
"timestamp": 1627890123,
"clientname": "ExampleClient",
"payload": "example_payload",
"hex_payload": "6865785f7061796c6f6164",
"payload_fields": [
{"name": "temperature", "value": "22.5"},
{"name": "humidity", "value": "60"}
]
}'
Odpowiedź:
200 OK
Żądanie:
curl -X POST "http://example.com/api/receiver/io" \
-H "Authorization: 0102030405" \
-H "X-device-eui: ABC123" \
-H "X-data-separator: ;" \
-H "Content-Type: text/plain" \
-d "temperature=22.5;humidity=60"
Odpowiedź:
200 OK
Żądanie:
curl -X POST "http://example.com/api/receiver/io" \
-H "Authorization: 0102030405" \
-H "X-device-eui: ABC123" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "temperature=22.5&humidity=60"
Odpowiedź:
200 OK
Żądanie:
curl -X POST "http://example.com/api/receiver/bulk" \
-H "Authorization: 0102030405" \
-H "X-device-eui: ABC123" \
-F "file=@data.csv"
Odpowiedź:
200 OK
Przykładowa zawartość data.csv
:
dev_eui,gateway_eui,timestamp,clientname,payload,hex_payload,payload_fields
ABC123,DEF456,1627890123,ExampleClient,example_payload,6865785f7061796c6f6164,"[{""name"": ""temperature"", ""value"": ""22.5""}, {""name"": ""humidity"", ""value"": ""60""}]"
Żądanie
curl -X POST `http://example.com/api/receiver/ttn3/up` \
-H `Authorization: 0102030405` \
-H `Content-Type: application/json` \
-d '{
"deviceEui": "0004A30B002C3A9D",
"timestamp": 1627382993,
"payloadFields": {
"temperature": 23.5,
"humidity": 56
}
}
Odpowiedź
OK