Как безопасно да публикувате отговори от формуляр на сайта си

Често срещана заявка: „Искам да покажа списък с регистрираните на нашия сайт“ или „Нуждая се от отговорите в собствения си административен панел“. REST API прави това възможно, а разликата между безопасна и небезопасна реализация се свежда до едно нещо: къде се намира API ключът.

Добре е да знаете: редакторът и потребителският профил в Gatherino са на английски или чешки език. Формулярите, които попълват респондентите ви, могат да се показват на 18 езика, включително български.

Основното правило

API ключът трябва да се съхранява на вашия сървър, никога в JavaScript кода в браузъра. Ако ключът е в кода на страницата, всеки може да го прочете от изходния код и да изтегли всички отговори от всичките ви формуляри, а не само от тези, които искате да покажете.

Правилният път е: браузърът изпраща заявка към вашия сървър → сървърът изпраща заявка до Gatherino с ключа → сървърът връща само полетата, които са предназначени да са публични.

Серверната част

Извличане на отговори във вашия бекенд (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],
}));

Стъпките

  1. 1

    Създайте API ключ

    В Настройки → API ключове. Показва се само веднъж, затова го запазете в променлива на средата от страната на сървъра.

  2. 2

    Намерете ID на полетата

    Крайната точка за подробности за формуляра връща ID-то и етикета на всяко поле. Запазете съответствието – ID-тата са стабилни.

  3. 3

    Обработка на пагинацията

    Една заявка връща най-много 100 отговора. Обходете следващите страници, като използвате totalPages.

  4. 4

    Добавете кеширане

    Не извиквайте API при всяко зареждане на страница. Кеширане за няколко минути е напълно достатъчно и ви спестява усилия.

  5. 5

    Филтрирайте какво публикувате

    Избирайте конкретни полета. Никога не изпращайте целия обект с отговора към браузъра.

Лични данни: списък с имена на публичен уебсайт е публикуване на лични данни. Уверете се, че имате правно основание, или публикувайте само данни, които участниците очакват да бъдат публични (например имена в стартов списък, за който са знаели предварително).

Често задавани въпроси

Мога ли да извиквам API директно от браузъра?

Не с вашия API ключ – той ще стане публичен. Винаги минавайте през собствения си сървър.

Защо ключовете за данни са като field_1778…?

Това са ID-тата на полетата във формуляра. Вземете етикетите им от подробностите за формуляра.

Колко често да извличам данните?

Според нуждата. За списък с регистрирани участници на всеки няколко минути е достатъчно. За мигновена реакция използвайте уебхук.

Поддържа ли API-то диакритика?

Да, всичко е в UTF-8.

Свързани материали

Опитайте Gatherino безплатно

Безплатен план: 3 формуляра и 100 отговора месечно. Без кредитна карта, данните се съхраняват в ЕС.

Започнете безплатно →