Cum să publici în siguranță răspunsurile formularelor pe site

O cerință frecventă: „Vreau să afișez o listă cu înscriși pe site” sau „Am nevoie de răspunsuri direct în administrarea proprie”. REST API-ul face asta, iar diferența între o implementare sigură și una nesigură depinde de un singur lucru: unde se află cheia API.

De reținut: editorul Gatherino și contul sunt disponibile în engleză sau cehă. Formularele completate de respondenți pot fi afișate în 18 limbi, inclusiv în română.

Regula de bază

Cheia API trebuie să se afle pe server, niciodată în JavaScript-ul din browser. Dacă este pusă în codul front-end, oricine o poate citi din sursa paginii și poate descărca fiecare răspuns din toate formularele, nu doar din cele pe care vrei să le afișezi.

Fluxul corect este: browserul cere date de la serverul tău → serverul cere datele de la Gatherino folosind cheia → serverul returnează doar câmpurile destinate publicului.

Partea de server

Preluarea răspunsurilor pe 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],
}));

Pașii

  1. 1

    Crearea cheii API

    Din Setări → Chei API. Se afișează o singură dată, așa că trebuie stocată într-o variabilă de mediu pe server.

  2. 2

    Găsirea ID-urilor câmpurilor

    Endpoint-ul de detalii al formularului returnează ID-ul și eticheta fiecărui câmp. Păstrează maparea — ID-urile sunt stabile.

  3. 3

    Gestionarea paginării

    O cerere returnează cel mult 100 de răspunsuri. Parcurge paginile următoare folosind câmpul totalPages.

  4. 4

    Adăugarea cache-ului

    Nu se apelează API-ul la fiecare încărcare a paginii. Un cache de câteva minute este suficient și îți economisește efort.

  5. 5

    Filtrarea datelor publicate

    Se aleg câmpuri specifice. Obiectul complet de răspuns nu se trimite niciodată în browser.

Date personale: o listă cu nume pe un site public constituie publicarea de date cu caracter personal. Este necesară o bază legală, iar publicarea trebuie limitată la detalii pe care persoanele se așteaptă să le vadă publice (de exemplu, numele de pe o listă de start despre care au fost informate din timp).

Întrebări frecvente

Pot apela API-ul direct din browser?

Nu cu cheia API, deoarece ar deveni publică. Apelurile trebuie făcute întotdeauna prin propriul server.

De ce cheile datelor au forma field_1778…?

Acestea sunt ID-urile câmpurilor din formular. Etichetele lor se preiau din detaliile formularului.

Cât de des ar trebui preluate datele?

Atunci când este necesar. Pentru o listă de înscriși, preluarea la fiecare câteva minute este suficientă. Pentru reacții instantanee se folosește un webhook.

API-ul acceptă diacritice?

Da, totul este în UTF-8.

Similare

Încearcă Gatherino gratuit

Plan gratuit: 3 formulare și 100 de răspunsuri pe lună. Fără card de credit, date găzduite în UE.

Începe gratuit →