# Abruf von Daten eines einzelnen Gastes (fetch)

## Aufruf

Der Abruf der Gast-Daten erfolgt über eine **HTTP-GET-Anfrage** an folgende URL:

`https://gwatch.events/ext-api/fetch?code=<Ticketcode>`

Zur Authentifizierung ist im Request-Header der **API-Hauptschlüssel** mit dem Schlüssel `X-Api-key` zu übergeben. Kann die Authentifizierung nicht erfolgreich durchgeführt werden kommt es zu einem HTTP 401 Fehler.

## Varianten / Datenansichten

Die zurückgegebenen Inhalte können serverseitig individuell konfiguriert werden. Falls mehrere Varianten (sogenannte **Flavors**) existieren, erhalten Sie für jede Variante einen separaten Schlüssel, der im Header als `X-Api-flavor` übergeben werden muss. Kann die Authentifizierung nicht erfolgreich durchgeführt werden kommt es zu einem HTTP 401 Fehler.

Für jede Variante kann optional ein eigener **IP-Filter** definiert sein. Schlägt die Prüfung der IP Adresse fehl, kommt es zu einem HTTP 401 Fehler.

## Notwendiger GET-Parameter

Folgender Parameter muss zusätzlich in der URL übergeben werden:

- **code:** Dies ist der Ticketcode des Gastes, dessen Daten erfragt werden sollen.

## Lokalisierte Darstellung

Die Ausgabe der Daten erfolgt für jeden Gast **lokalisiert**, das heißt:

- Datumsangaben, Zeitstempel und Zahlen mit Dezimalstellen werden entsprechend der Sprache des Gastes formatiert.
- Listenfelder enthalten als Wert die **lokalisierte** Bezeichnung im Kontext der Sprache des Gastes (nicht den Schlüssel).

Dies gewährleistet eine benutzerfreundliche Darstellung der Daten im jeweiligen Sprachkontext.

## Statusmeldungen und Rückgabeformat

- **401**: nicht autorisiert. Dies bedeutet, dass entweder der API Key und/oder der API Flavor key nicht korrekt sind.
- **403**: unter dem übergebenen Code konnte ein Gast gefunden werden. Dieser hat aber der Weitergabe seiner Daten nicht zugestimmt.
- **404**: unter dem übergebenen Code konnte kein Gast gefunden werden.
- **422**: der notwenige Parameter (code) fehlt.
- **200**: erfolgreiche Antwort

**Beispiel (Erfolgreiche Antwort):**

```json
{
    "Vorname": "Susi",
    "Nachname": "Sorglos",
    "Mitgliedschaft": "IT-Security Concepts"
}

```