API-Dokumentation & Referenz

Diese Schnittstelle (API) dient als Proxy zu unserer Firebase-Datenbank und Authentifizierung. Für öffentliche Websites erzeugt das Developer Center einen fertigen <button>-Snippet: Der Button öffnet den Gurkistan-Login, erhält den Firebase-ID-Token und ruft anschließend auth_request mit Client-ID und Client-Secret auf. Nach erfolgreicher Anmeldung erhält der Client das authentifizierte Konto, alle im Gurkistan-Wiki-Profil gespeicherten Daten und die vom Nutzer erstellten Artikel. Serverseitige Integrationen sollten ihre Secrets weiterhin nur in Umgebungsvariablen speichern.

Interaktiver API-URL-Generator

Wähle die gewünschten Parameter aus, um deine Abfrage-URL direkt zu generieren:

https://gurkistanwiki.gurken.site/api/api.php?c=pages
Im Browser öffnen

Verfügbare Endpunkte & Parameter

Parameter Beschreibung Beispiel
c Gibt die Collection, auth_users oder auth_request an. ?c=pages
id Ruft ein spezifisches Dokument anhand seiner ID ab. ?c=pages&id=gurkistan
field Gibt nur ein einzelnes Feld eines Dokuments zurück. ?c=pages&id=gurkistan&field=title
format Wählt das Ausgabeformat (json oder csv). ?c=pages&format=csv

Firebase Authentication Abfragen & auth_request

auth_users ist für administrative Übersichten gedacht. auth_request ist der sichere Login-Endpunkt für externe Anwendungen: Sende die App-ID, das App-Secret und einen gültigen Firebase-ID-Token in den Headern. Eine E-Mail-Adresse allein reicht nicht aus. Die Antwort enthält das authentifizierte Konto und dessen vollständiges, öffentlich gespeichertes Gurkistan-Wiki-Profil in profile sowie die erstellten Artikel in articles. Verschachtelte Daten wie Listen und Karten bleiben vollständig erhalten.

Parameter Beschreibung Beispiel
provider Filtert nach Anbietern (google, github, password). Auch Kommata für Mehrfachauswahl sind erlaubt. ?c=auth_users&provider=google
uid Gibt detaillierte Daten zu einer exakten Benutzer-ID aus. ?c=auth_users&uid=xrozqtPKx...
Authorization, X-Gurkistan-App-Id, X-Gurkistan-App-Secret Firebase-ID-Token und die Zugangsdaten einer Anwendung aus dem Developer Center. Bearer eyJ...

Beispiel: Anmeldung und auth_request

const user = firebase.auth().currentUser; const idToken = await user.getIdToken(); const response = await fetch('https://gurkistanwiki.gurken.site/api/api.php?c=auth_request', { headers: { Authorization: `Bearer ${idToken}`, 'X-Gurkistan-App-Id': 'gk_deine_client_id', 'X-Gurkistan-App-Secret': 'dein_client_secret' } }); const data = await response.json(); [ { "uid": "xrozqtPKxFM33pXGfvHhnG7LU8m1", "email": "info@alexgaming.is-a.dev", "displayName": null, "emailVerified": true, "providers": [ "google.com", "github.com", "password" ], "createdAt": "1787312638800", "lastLoginAt": "1787335448532", "profile": { "username": "gurkenfreund", "showProfile": true }, "articles": [ { "id": "gurkistan", "title": "Gurkistan", "content": "..." } ] } ]

Firestore & Felder ansprechen

Um ein einzelnes Feld eines Eintrags direkt auszulesen, lässt sich der field-Parameter anfügen.

https://gurkistanwiki.gurken.site/api/api.php?c=pages&id=gurkistan&field=title