Sådan offentliggør du formularsvar sikkert på din hjemmeside

Et almindeligt ønske: «Jeg vil vise en liste over tilmeldte på vores side» eller «Jeg har brug for svarene inde i mit eget admin-område». REST API'et klarer det, og forskellen på en sikker og en usikker løsning ligger i ét forhold: hvor API-nøglen opbevares.

Godt at vide: Gatherino-editoren og kontoen findes på engelsk eller tjekkisk. Formularerne, som respondenterne udfylder, kan vises på 18 sprog, herunder dansk.

Den grundlæggende regel

API-nøglen hører hjemme på din server, aldrig i JavaScript i browseren. Lægger du nøglen i frontend-koden, kan alle læse den i sidens kildekode, og de kan downloade hvert svar fra alle dine formularer, ikke kun dem, du havde tænkt dig at vise.

Det korrekte flow er: browseren spørger din server → din server spørger Gatherino med nøglen → din server returnerer kun de felter, der skal være offentlige.

Serverdelen

Hent svar på din backend (Node.js):

const res = await fetch(
  `https://gatherino.com/api/v1/submissions?formId=${FORM_ID}&limit=100`,
  { headers: { Authorization: `Bearer ${process.env.GATHERINO_KEY}` } }
);
const { items, total, totalPages } = await res.json();

// Publish selected fields only — never the whole data object
const publicList = items.map((s) => ({
  name: s.data[FIELD_NAME_ID],
  city: s.data[FIELD_CITY_ID],
}));

Trinene

  1. 1

    Opret en API-nøgle

    Under Indstillinger → API-nøgler. Den vises kun én gang, så gem den i en miljøvariabel på serveren.

  2. 2

    Find felt-ID'erne

    Endpointet for formulardetaljer returnerer hvert felts ID og etiket. Gem mappingen, for ID'erne er stabile.

  3. 3

    Håndter paginering

    Ét kald returnerer højst 100 svar. Hent de næste sider ved at bruge totalPages.

  4. 4

    Tilføj caching

    Kald ikke API'et ved hver sideindlæsning. Caching i et par minutter er rigeligt og sparer dig også for besvær.

  5. 5

    Filtrér det, du offentliggør

    Vælg specifikke felter. Send aldrig hele svarobjektet til browseren.

Persondata: En liste med navne på en offentlig hjemmeside er offentliggørelse af persondata. Sørg for at have et retsgrundlag, eller offentliggør kun oplysninger, som deltagerne forventer at blive offentliggjort (fx navne på en startliste, som de kendte til på forhånd).

FAQ

Kan jeg kalde API'et direkte fra browseren?

Ikke med din API-nøgle, for så ville den være offentlig. Gå altid igennem din egen server.

Hvorfor ser datanøglerne ud som field_1778…?

Det er formularens felt-ID'er. Hent deres etiketter fra formulardetaljerne.

Hvor ofte skal jeg hente data?

Efter behov. Til en deltagerliste er et opdateringsinterval på nogle få minutter rigeligt. Til øjeblikkelige reaktioner bruger du en webhook.

Understøtter API'et specialtegn?

Ja, alt er UTF-8.

Relateret

Prøv Gatherino gratis

Gratis plan: 3 formularer og 100 svar om måneden. Intet kreditkort, data hostet i EU.

Kom i gang gratis →