Diese Repo enthält eine Webseite, die beim Aufruf ein zufälliges Zitat von einem auf Supabase gehosteten Backend zurückliefert.
Web-App via GitHub Pages: hier (funktioniert nicht, weil zugehörige Supabase-Instanz pausiert wurde)
Tabelle anlegen:
CREATE TABLE zitate (
id SERIAL PRIMARY KEY,
zitat TEXT NOT NULL,
autor TEXT NOT NULL
);
Beispieldatensätze in Tabelle laden: siehe insert.sql.
RPC-Funktion anlegen (weil ORDER BY RANDOM() nicht über JavaScript-API aufgerufen werden kann):
CREATE OR REPLACE FUNCTION get_zufaelliges_zitat()
RETURNS TABLE(zitat TEXT, autor TEXT) AS $$
BEGIN
RETURN QUERY
SELECT z.zitat, z.autor
FROM zitate z
ORDER BY RANDOM()
LIMIT 1;
END;
$$ LANGUAGE plpgsql;
Diese Funktion ist mit PL/pgSQL, der prozeduralen Sprache der Postgres-Datenbank, geschrieben.
In SQL-Konsole von Supabase-Projekt folgenden PL/pgSQL-Befehl ausführen, um einen REST-Endpunkt für die Überwachung anzulegen:
CREATE OR REPLACE FUNCTION health_check()
RETURNS JSON AS $$
DECLARE
anzahl_datensaetze INTEGER;
BEGIN
SELECT COUNT(*) INTO anzahl_datensaetze FROM zitate;
RETURN json_build_object(
'zustand' , 'okay',
'zeitstempel' , NOW(),
'anzahl_zitate' , anzahl_datensaetze
);
END;
$$ LANGUAGE plpgsql;
Zum Testen kann diese Prozedur über den folgenden SQL-Befehl ausgeführt werden:
SELECT health_check()
Der hiermit definierte REST-Endpunkt mit HTTP-GET unter der folgenden URL aufgerufen werden:
https://annymgkbnrknvkjnhdhy.supabase.co/rest/v1/rpc/health_check
Es sind dabei aber die beiden HTTP-Header-Felder apikey und Authorization zu setzen,
siehe auch den in dieser Datei für den Talend API Tester
definierten Request "Health Check".
Beispielantwort:
{
"zustand" : "okay",
"zeitstempel" : "2025-07-13T09:50:57.613117+00:00",
"anzahl_zitate": 12
}
Zum Testen kann diese Prozedur über den folgenden SQL-Befehl ausgeführt werden:
SELECT get_zufaelliges_zitat()
Diese Check kann auch regelmäßig mit GitHub Actions ausgeführt werden,
siehe diese Workflow-Datei.
Hierfür muss aber in den Repo-Einstelllungen unter "Secrets and variables | Actions"
eine Variable mit Namen SUPABASE_API_KEY angelegt werden, die den API-Key
des Supabase-Projekts enthält.
See the LICENSE file for license rights and limitations (BSD 3-Clause License) for the files in this repository.