Skip to content

MDecker-MobileComputing/HTML_Supabase_Zitate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zitate von Supabase


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)



Anlegen Datenbanktabelle


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.



REST-Endpunkt für Monitoring


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.



License


See the LICENSE file for license rights and limitations (BSD 3-Clause License) for the files in this repository.


About

Webseite, die ein zufälliges Zitat von einem Supabase-Backend lädt und anzeigt

Topics

Resources

License

Stars

Watchers

Forks

Contributors