# 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.

Source: https://www.roote.ai/hu/guides/valosideju-kerekpar-elerhetoseg-alkalmazasban-megjelenites/
Language: hu
Author: ROOTE

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](https://api.roote.ai/openapi.json)

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

| Mező | Értelmezés |
| --- | --- |
| freshness.state | Jelzett állapot: fresh (friss), stale (elavult), unknown (ismeretlen) vagy static (statikus) |
| freshness.source_updated_at | A forrás frissítésének dátuma, ha ismert |
| freshness.received_at | A szerződés által jelzett fogadás ideje |
| freshness.expires_at | Érvényességi határidő, ha ismert |
| availability.bikes | Ismert mennyiség vagy ismeretlen érték |
| pickup.enabled és pickup.state | Informá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 adat | Várható megjelenítés |
| --- | --- |
| Ismert mennyiség és friss adat | Megfigyelt mennyiség időbeli jelzéssel |
| Mennyiség nulla | Nem é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ég | Régi adat; frissítés szükséges |
| pickup.enabled=false | Elvétel nem elérhető, még ha a számláló pozitív is |
| Keresési hiba | Elé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](https://www.roote.ai/hu/guides/gtfs-gtfs-rt-es-gbfs-miben-kulonboznek/)

## 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](https://www.roote.ai/hu/guides/nincs-eredmeny-vagy-api-hiba-hogyan-kulonboztessuk-meg/)

[Alkalmazza ezeket a szabályokat egy MI asszisztensben](https://www.roote.ai/hu/guides/mobilitasi-asszisztens-csinalasa-cim-kozeli-lehetosegekhez/)

[Felhasználói útmutató kerékpárkereséshez](https://www.roote.ai/hu/guides/hogyan-talaljuk-meg-a-kozossegi-kerekpart-kozelunkben/)

## 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.
