API za strujanje koordinata objekata

Glavna svrha API-ja za strujanje koordinata objekata je informiranje korisnika o promjenama objekata. Ovaj API radi kao strujanje informacija koristeći SSE (server sent events – događaji poslani od strane poslužitelja) . Nakon što korisnik pošalje API zahtjev, prvo se prikazuje posljednja poznata koordinata za svaki objekt, a nakon toga će se korisniku poslati novi podaci čim dođe do promjene. Nema potrebe za ponovnim slanjem API zahtjeva osim ako je strujna veza prekinuta.

Ova slika ima prazan atribut alt; naziv datoteke je Streaming-API-234x300.png

Bilješka
Budući da API prvo vraća posljednju poznatu koordinatu, u slučajevima kada je API stream bio u tijeku i iz nekog razloga ponovno povezan, bez primljenih novih koordinata između tog vremena, korisnik će primiti posljednju poznatu koordinatu, koja je već jednom primljena, čime se duplicira zapis koordinata. To treba imati na umu, jer može uzrokovati probleme u raznim sustavima.

Streaming API-ja za koordinate objekata može se pokrenuti za jedan određeni objekt ili za sve korisniku dostupne objekte.

Primjer zahtjeva za određeni objekt:

GET /object-coordinates-stream?version=1&object_id= <...>&api_key= <...>
DOMAĆIN: api.fm-track.com
Vrsta sadržaja: tekst/tok događaja; skup znakova=UTF-8

Primjer zahtjeva za sve klijentske objekte:

GET /object-coordinates-stream?version=1&api_key= <...>
DOMAĆIN: api.fm-track.com
Vrsta sadržaja: tekst/tok događaja; skup znakova=UTF-8

Da bi ovaj API radio, obavezna su samo dva parametra:

ParameterTypeDescription
versionStringVersion of the API, currently only version=1 is available
api_keyUser identification key

I u zahtjevu se može uključiti samo jedan opcionalni parametar:

ParameterTypeDescription
object_idStringExternal object ID

Odgovor s poslužitelja:

{
    "object_id" : "abc123",
    "datetime" : "2017-04-13T06:58:48.090Z",
    "ignition_status" : "UNKNOWN",
    "position" : {
        "altitude" : 0,
        "direction" : 0,
        "latitude" : 0,
        "longitude" : 0,
        "hdop": 0,
        "satellites_count" : 0,
        "speed" : 0
    },
    "device_inputs" : {
        "digital_input_1" : true,
        "digital_input_2" : true,
        "digital_input_3" : true,
        "digital_input_4" : true,
        "power_supply_voltage" : 0,
        "ibutton" : "xxxxxxxxxx",
        "first_driver_id" : "xxxxxxxxxx",
        "second_driver_id" : "xxxxxxxxxx",
         "temperature_sensor_0": 0,
         "temperature_sensor_1": 0,
         "temperature_sensor_2": 0,
         "temperature_sensor_3": 0,
         "temperature_sensor_0_id": "xxxxxxxxxx"
    },
    "calculated_inputs":{
        "mileage" : 0
    }
}

Sva polja odgovora koja se mogu primiti sa svakom vrstom parametra opisana su u sljedećoj tablici:

NameTypeDescriptionUnits
object_idStringObject identifier in our systemText
datetimeDateDate and time point of coordinate generated in hardware
Format: "yyyy-mm-ddThh:mm:ss.sssZ"
According ISO8601
ignition_statusEnumIndicating if object has ignition on.
"ON" - Ignition on
"OFF" - Ignition off
"UNKNOWN" - No data about ignition
ON - OFF
positionArrayContains all record GPS parameters
latitudeFloatGPS coordinate - latitude valueDegrees
longitudeFloatGPS coordinate - longitude valueDegrees
altitudeIntegerGPS coordinate - altitude valueNumber
directionIntegerMoving direction in degrees0 = north, increasing clock-wise
speedIntegerObject moving speedkm/h
satellites_countIntegerNumber of visible GPS or GLONASS satellites(depends on device configuration) while generating record in deviceNumber
device_inputsContainer for parameters received from hardware
power_supply_voltageIntegerObject power supply voltagemV
ibuttonStringiButton or RFID card code of a driver assigned to a vehicleText
hdopFloatGPS precisionNumber
first_driver_idStringTCO code of the first driverText
second_driver_idStringTCO code of the second driverText
digital_input_1BooleanConfigured object or its equipment status
true - status = active
false - status = inactive
True - False
digital_input_2BooleanConfigured object or its equipment status
true - status = active
false - status = inactive
True - False
digital_input_3BooleanConfigured object or its equipment status
true - status = active
false - status = inactive
True - False
digital_input_4BooleanConfigured object or its equipment status
true - status = active
false - status = inactive
True - False
temperature_sensor_0FloatTemperature sensor data°C
temperature_sensor_1FloatTemperature sensor data°C
temperature_sensor_2FloatTemperature sensor data°C
temperature_sensor_3FloatTemperature sensor data°C
temperature_sensor_0_idStringTemperature sensor IDText
calculated_inputsArray
mileagefloatObject driven distance (depends on object configuration)km

API krajnje točke, parametri zahtjeva i odgovori mogu se pregledati u „Swaggeru” putem ove poveznice: https://api.fm-track.com

Bilješka
Imajte na umu da je odgovor poslužitelja tok podataka, isti podaci koji su primljeni s uređaja. Svi primljeni podaci pružaju se „kakvi jesu”. To znači da uređaj može periodički slati koordinate prethodne pozicije između zapisa trenutne pozicije. API ne provjerava niti upravlja kontinuitetom primljenih podataka.