Pradžia/Vadovai/Kūrėjai
Kūrėjai

Dviraciu prieinamumas tiesioginiu laiku: kaip jį rodyti programėlėje?

Rodykite dviraciu prieinamuma naudodami ROOTE API: laiko žyma, duomenų šviežumas, nežinomos reikšmės, atnaujinimas ir pasenę duomenys jūsų programoje.

By ROOTE·7 min. skaitymo
Dviraciu prieinamumas tiesioginiu laiku: kaip jį rodyti programėlėje?
Stebimas prieinamumas ir jo kontekstas.

Svarbiausia per kelias sekundes

Pateikite prieinamą kiekį su jo šviežumo būkle, laiko žymomis ir dviračio paėmimo sąlygomis. Nežinoma reikšmė lieka nežinoma; sena stebėsena netampa tiesiogine, tik todėl, kad jūsų programa ją gavo.

Norėdami programėlėje rodyti dviraciu prieinamumą tiesioginiu laiku, susiekite grąžintą kiekį su jo šviežumu ir galimybėmis paimti transporto priemonę. Stebėsena aprašo, ką šaltinis žinojo tam tikru momentu; ji negarantuoja, kad dviratis vis dar bus vietoje atvykus.

ROOTE mobilumo sutartis skiria stotis, atskirus transporto priemonių vienetus ir jų būsenas. Sąsaja turi atspindėti šiuos skirtumus be klaidų, nepainioti nežinomos reikšmės, tuščios stoties ir laikinai neprieinamo šaltinio.

Atskirti stotį nuo atskiro transporto priemonės vieneto

Stotis gali rodyti dviraciu ir grąžinimo vietų skaitiklius. Atskirame transporto vienete yra prieinamumo būsena ir kiti galimi duomenys. Venkite laikyti stotį kaip dviratį arba sudėti tuos pačius atsargų skaitiklius.

ROOTE mobilumo DTO laukeliai availability.bikes ir availability.docks gali būti nežinomi. Variklio tipo ar baterijos laukai turėtų būti rodomi tik jei egzistuoja ir yra interpretuojami pagal sutartį.

ROOTE OpenAPI sutartis

Skaityti šviežumą ir laiko žymes

LaukasInterpretacija
freshness.statePranešta būsena: fresh, stale, unknown arba static
freshness.source_updated_atŠaltinio atnaujinimo data, jei žinoma
freshness.received_atSutarties nurodyta gavimo data
freshness.expires_atGaliojimo terminas, jei žinomas
availability.bikesŽinomas kiekis arba nežinoma reikšmė
pickup.enabled ir pickup.stateInformacija apie dviračio paėmimą iš stoties

Jūsų kvietimo laikas nėra automatiškai stebėsenos laikas. Rezultatas, gautas 10 val., gali turėti šaltinį atnaujintą 9:45. Nerodykite „atnaujinta dabar“ tik pagal jūsų sąsajos gavimo laiką.

Numatykite skirtingas rodymo būsenas

Gauti duomenysNumatomas rodymas
Žinomas kiekis ir švieži duomenysStebėtas kiekis ir laiko indikacija
Kiekis lygus nuliuiNėra stebimų dviračių su laiko kontekstu
Kiekis lygus nullPrieinamumas nežinomas
Būsena stale arba galiojimas pasibaigęsSeni duomenys; siūlyti atnaujinimą
pickup.enabled=falsePaėmimas nepasiekiamas, nors skaitiklis teigiamas
Paieškos klaidaPrieinamumas laikinai nepasiekiamas, nekeičiant į nulį

Nepriskirkite būsenos unknown arba static kaip šviežios. Stoties informacija gali būti stabili, o skaitiklis greitai keistis. Išsaugokite perspėjimus ir atsakymų priskyrimus.

Normalizavimo pavyzdys prieš pateikimą

Ši funkcija pateikia pateikimo būseną iš stoties, jau patikrintos pagal ROOTE schemą. Tai nėra pilnas atsakymo validatorius. Matomi tekstai turėtų būti jūsų sąsajos vertimų raktai.

function availabilityView(station, now = Date.now()) {
  const freshness = station.freshness;
  const expiresAt = freshness.expires_at
    ? Date.parse(freshness.expires_at) : null;
  const expired = expiresAt !== null &&
    Number.isFinite(expiresAt) && expiresAt <= now;
  if (station.pickup.enabled === false ||
      station.pickup.state === 'unavailable_now') {
    return { state: 'pickup_unavailable', count: null };
  }
  if (expired || freshness.state === 'stale') {
    return { state: 'stale', count: null };
  }
  const count = station.availability.bikes;
  if (freshness.state !== 'fresh' || count === null ||
      !Number.isFinite(count) || count < 0) {
    return { state: 'unknown', count: null };
  }
  return {
    state: count === 0 ? 'empty' : 'observed', count,
    sourceUpdatedAt: freshness.source_updated_at,
    receivedAt: freshness.received_at,
    pickupState: station.pickup.state
  };
}

Net ir su būsenos observed, nepaverskite pickupState=unknown į patvirtintą paėmimą. Skaitiklis vis dar yra stebėsena. Rodykite paėmimo kontekstą, jei jūsų produktas padeda vartotojui pasirinkti stotį.

Atnaujinkite, vengdami nereikalingų kvietimų dauginimo

Priderinkite atnaujinimą prie paskelbtos galiojimo pabaigos, paslaugos sąlygų ir vartotojo elgesio. Grupiuokite identiškus užklausimus, venkite kviesti fone inaktyviame puslapyje, atšaukite pakeistas paieškas.

Vietinis kešavimas neįrodo šaltinio šviežumo. Po klaidos galite išlaikyti paskutinę datuotą stebėseną, jei sąsaja aiškiai rodo, kad ji sena. Neištrinkite šio skirtumo pirma sėkminga pakartotina užklausa, jei šaltinis išlieka stale.

Suprasti ryšį su GBFS

GBFS aprašo bendro naudojimo mobilumo paslaugas ir jų paskelbtas būsenas. Tiesioginė integracija turi interpretuoti failus, versiją ir srauto laiko žymes. Naudokite standartizuotą API sutartį; nenaudokite GBFS laukų, jei jų nėra atsakyme.

Pasirinkimas tarp GTFS, GTFS Realtime ir GBFS

Testuoti skaitytoją klaidinančias situacijas

Išbandykite tikrą nulį, nežinomą reikšmę, pasibaigusį terminą, išjungtą paėmimą ir klaidą po galiojančio rezultato. Taip pat tikrinkite laiko juostas. Teigiamas skaitiklis neturėtų rodyti „užrezervuoto dviračio“, o neprieinamumas – fiktyvaus nulio.

Valdyti tuščius atsakymus ir klaidas

Taikyti šias taisykles IA asistentui

Naudotojo gidas, kaip rasti dviratį

KūrėjamsROOTE Mobility API

Mobilumas aplink tašką.
Tiesiogiai jūsų programėlėje.

  • Ieškoti
    aplink vietą
  • Prieigos prie
    mobilumo duomenų
  • Integruoti į
    jūsų programėlę

Pereikite nuo žemėlapio prie duomenų: ieškokite mobilumo ir paslaugų netoli su ROOTE API.

Dažnai užduodami klausimai

Ar teigiamas kiekis garantuoja dviratį atvykus?

Ne. Tai stebėsena, kuri gali pasikeisti tarp paieškos ir atvykimo.

Ar null galima pakeisti nuliu?

Ne. Null žymi nežinomą reikšmę; nulis yra žinomas kiekis ir turi kitokią prasmę.

Ar reikia atnaujinti kas kelias sekundes?

Naudokite galiojimo indikacijas, paslaugos apribojimus ir sąsajos poreikius. Atsitiktinis dažnis negarantuoja švaresnio šaltinio.

O jei pažvelgtumėte aplink save?

Apžvelkite savo kvartalą su ROOTE ir raskite prieinamą informaciją, kad pasiruoštumėte kelionei.

Tyrinėti ROOTE žemėlapį ↗