Kezdőlap/Útmutatók/Fejlesztők
Fejlesztők

Kerekpár elérhetőség valós időben: hogyan jelenítsük meg az alkalmazásban?

Mutassa meg a kerékpárok elérhetőségét az ROOTE API-val: időbélyegzés, frissesség, ismeretlen értékek, frissítés és lejárt adatok megjelenítése alkalmazásában.

By ROOTE·7 perc olvasási idő
Kerekpár elérhetőség valós időben: hogyan jelenítsük meg az alkalmazásban?
Egy megfigyelt elérhetőség, annak kontextusával.

A lényeg néhány másodperc alatt

Mutassa be az elérhető mennyiséget a frissességi állapotával, időbélyegeivel és a kerékpár elvételének feltételeivel. Az ismeretlen érték továbbra is ismeretlen; a régi megfigyelés nem válik valós idejűvé csak azért, mert az alkalmazásához most érkezett meg.

Valós idejű kerékpár elérhetőség megjelenítéséhez az alkalmazásban társítsa a visszaadott darabszámot annak frissességi állapotával és a jármű elvételi lehetőségeivel. Egy megfigyelés azt írja le, amit a forrás egy adott pillanatban ismert; nem garantálja, hogy a kerékpár még ott lesz az érkezéskor.

A ROOTE mobilitási szerződés megkülönbözteti az állomásokat, az egyedi járműveket és azok állapotát. Az interfésznek tükröznie kell ezeket a különbségeket anélkül, hogy összekeverné az ismeretlen értéket, az üres állomást és az ideiglenesen elérhetetlen forrást.

Állomás és egyedi jármű különválasztása

Egy állomás kerekpár- és visszavevőhely-számlálókat mutathat. Egy egyedi jármű rendelkezik elérhetőségi állapottal és egyéb esetleges információkkal. Kerülje, hogy egy állomást kerékpárként számoljon, vagy azonos készletet képviselő számlálókat összeadjon.

A ROOTE mobilitási DTO-ban az availability.bikes és availability.docks lehet ismeretlen. A hajtás vagy akkumulátor mezőket csak akkor jelenítse meg, ha léteznek és a szerződés szerint értelmezhetőek.

ROOTE OpenAPI szerződés

A frissesség és időbélyegek olvasása

MezőÉrtelmezés
freshness.stateJelzett állapot: fresh (friss), stale (elavult), unknown (ismeretlen) vagy static (statikus)
freshness.source_updated_atA forrás frissítésének dátuma, ha ismert
freshness.received_atA szerződés által jelzett fogadás ideje
freshness.expires_atÉrvényességi határidő, ha ismert
availability.bikesIsmert mennyiség vagy ismeretlen érték
pickup.enabled és pickup.stateInformációk a kerékpár elvételéről az állomáson

Az Ön hívásának időpontja nem feltétlenül egyezik meg a megfigyelés idejével. Egy 10 órakor kapott eredmény tartalmazhat egy 9:45-kor frissített forrást. Ne jelenítse meg úgy, hogy „most frissítve” csak az interfész fogadási ideje alapján.

Különböző megjelenítési állapotokat tervezzen

Fogadott adatVárható megjelenítés
Ismert mennyiség és friss adatMegfigyelt mennyiség időbeli jelzéssel
Mennyiség nullaNem észlelt kerékpár az időbeli kontextusával együtt
Mennyiség null (ismeretlen)Ismeretlen elérhetőség
Stale állapot vagy lejárt érvényességRégi adat; frissítés szükséges
pickup.enabled=falseElvétel nem elérhető, még ha a számláló pozitív is
Keresési hibaElérhetőség átmenetileg nem elérhető, nem nullára konvertálva

Ne sorolja az unknown vagy static állapotot frissnek. Egy állomás információja lehet stabil, miközben a számláló gyorsan változik. Tartsa meg a válasz által előírt figyelmeztetéseket és hozzárendeléseket is.

Egy normalizálás példa megjelenítés előtt

A következő függvény egy megjelenítési állapotot ad vissza egy már a ROOTE sémát ellenőrzött állomásból. Nem teljes válaszvalidátor. A látható címkéknek az Ön interfészének fordítási kulcsaiból kell származniuk.

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
  };
}

Még observed állapot mellett se alakítsa át a pickupState=unknown-t megerősített elvétellé. A számláló továbbra is egy megfigyelés. Jelenítse meg az elvételi kontextust, ha terméke segíti a felhasználót az állomás kiválasztásában.

Frissítés felesleges hívások sokszorosítása nélkül

Igazítsa a frissítést a közzétett lejárathoz, a szolgáltatás feltételeihez és a felhasználói viselkedéshez. Csoportosítsa az azonos kéréseket, kerülje az inaktív oldalon futó háttérhívásokat, és bontsa fel az érvénytelenített kereséseket.

Egy helyi cache időzítés nem bizonyítja a forrás frissességét. Hiba esetén megtarthat egy időbélyegzett utolsó megfigyelést, ha azt az interfész kifejezetten régi adatként jelzi. Ne törölje ezt az elkülönítést az első sikeres ismétléskor, ha a forrás továbbra is stale.

Kapcsolat megértése a GBFS-sel

A GBFS a megosztott mobilitási szolgáltatásokat és azok közzétett állapotait írja le. Egy közvetlen integráció értelmeznie kell a fájlokat, verziókat és adatfolyam időbélyegeket. Egy szabványos API esetén használja az API szerződését; ne adjon hozzá feltételezett hiányzó GBFS mezőt a válaszhoz.

GTFS, GTFS Realtime és GBFS közötti választás

A felhasználót megtévesztő helyzetek tesztelése

Teszteljen valódi nullát, ismeretlen értéket, lejárt érvényességet, kikapcsolt elvételt és hibát érvényes eredmény után. Ellenőrizze a megjelenítés időzónáit is. Egy pozitív számláló sosem eredményezhet „foglalt kerékpárt”, és egy elérhetetlenség sosem produkálhat kitalált nullát.

Üres és hibás válaszok kezelése

Alkalmazza ezeket a szabályokat egy MI asszisztensben

Felhasználói útmutató kerékpárkereséshez

FejlesztőknekROOTE Mobility API

Mobilitás egy pont körül.
Közvetlenül az alkalmazásodban.

  • Keresés
    egy hely körül
  • Mobilitási
    adatokhoz való hozzáférés
  • Integrálás a
    alkalmazásodba

Térképről adatokra: keresd meg a közeli mobilitásokat és szolgáltatásokat a ROOTE API-val.

Gyakran ismételt kérdések

Pozitív mennyiség garantálja-e a kerékpárt az érkezésemkor?

Nem. Ez egy megfigyelést ír le, amely változhat a keresés és az érkezés között.

Kicserélhető-e a null érték nullára?

Nem. A null ismeretlen értéket jelent; a nulla ismert mennyiség, és más jelentése van.

Minden néhány másodpercben frissíteni kell?

Használja az érvényességi jelzéseket, a szolgáltatási korlátokat és az interfészigényeket. Egy önkényes gyakoriság nem garantál frissebb forrást.

Mi lenne, ha körbenéznél?

Fedezd fel a környéked ROOTE segítségével és találd meg az elérhető információkat az utazásod előkészítéséhez.

Fedezd fel a ROOTE térképet ↗