Як безпечно публікувати відповіді форми на вашому сайті

Поширений запит: «Хочу показати список учасників на нашому сайті» або «Мені потрібні відповіді в моїй адмін-панелі». 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 відповідей на місяць. Банківська картка не потрібна, дані зберігаються в ЄС.

Почніть безкоштовно →