Save up to 17% with yearly billing

See pricing

Fehlerbehandlung

Caching und Kontingente: Caching & Monitoring.

Plattformfehler (401, 403, 422, 429, 5xx): Fehlerbehandlung.

Flugstatus

GET /flight_status/{flight_number} liefert 404, wenn der Flug für heute nicht veröffentlicht ist — nicht, wenn Ihr Code fehlerhaft ist. Es gibt keinen Datumsparameter; verwenden Sie Flugpläne für Anzeigetafeldaten eines bestimmten Tages.

Felder für Gate, Terminal, Gepäck und Check-in sind oft leere Strings ("") — behandeln Sie sie als unbekannt, nicht als fehlende Konfiguration.

Flugpläne

flights kann ein leeres Array sein — das ist ein gültiger Zustand der Anzeigetafel. Zeilenschlüssel verwenden Title Case (Flight, Time, Status) — kleingeschriebene Schlüssel liefern undefined.

Entfernung

Liefert 422, wenn Flughafencodes nicht aufgelöst werden können oder Koordinaten außerhalb des gültigen Bereichs liegen.

Flugbriefing

Die Erstellung eines Briefings ist langsam (oft 30–90 s) und kann unter Last 503 liefern. Wiederholen Sie die Anfrage einmal nach einem kurzen Backoff; bombardieren Sie den Endpoint nicht bei jedem UI-Rendering.

Strukturiertes JSON verwendet summary, origin_briefing und destination_briefing — keinen sections-Wrapper.

import os
import time

import requests

HEADERS = {
    "X-RapidAPI-Key": os.getenv("RAPIDAPI_KEY", "YOUR_RAPIDAPI_KEY"),
    "X-RapidAPI-Host": "skylink-api.p.rapidapi.com",
}
BASE = "https://skylink-api.p.rapidapi.com"


def fetch_status(flight: str) -> dict | None:
    r = requests.get(f"{BASE}/flight_status/{flight}", headers=HEADERS, timeout=(10, 15))
    if r.status_code == 404:
        return None
    r.raise_for_status()
    return r.json()


def fetch_briefing(origin: str, destination: str) -> dict | None:
    params = {
        "origin": origin,
        "destination": destination,
        "include_weather": "true",
        "include_notams": "true",
        "format": "json",
    }
    for attempt in range(2):
        r = requests.get(
            f"{BASE}/briefing/flight",
            headers=HEADERS,
            params=params,
            timeout=(10, 90),
        )
        if r.status_code == 404:
            return None
        if r.status_code in (502, 503, 504):
            if attempt == 0:
                time.sleep(8)
                continue
            return None
        r.raise_for_status()
        return r.json()
    return None


if __name__ == "__main__":
    status = fetch_status("BA123")
    print("Status:", status["status"] if status else "not found today")
    print("Briefing smoke test: see flight-briefing-integration (60–90 s generation time)")

Für vorübergehende Fehler verwenden Sie den Retry-Helper unter Fehlerbehandlung.


Siehe auch: Flugstatus · Flugpläne · Entfernung · Flugbriefing · Caching & Monitoring