API к PostgreSQL без бэкенда: запись и чтение данных через вебхук

API к PostgreSQL без бэкенда в nana800 собирается из трёх блоков: вебхук принимает запрос, блок PostgreSQL выполняет ваш SQL с данными из этого запроса, а блок ответа возвращает результат. Значения из запроса уходят в базу отдельными параметрами, поэтому кавычки и точки с запятой в них не ломают SQL. Нужна только база, доступная из интернета, и логин с паролем к ней.

Собрать в конструкторе

Что можно автоматизировать

  • Сохранять заявки с сайта в свою таблицу и возвращать форме номер новой записи
  • Отдавать сайту или мобильному приложению данные из базы по адресу вида /orders/:id
  • Менять статус заказа, когда платёжный сервис или CRM присылает уведомление на вебхук
  • Складывать события и логи из своих сервисов в одну таблицу без отдельного сервера
  • Работать с базой в Supabase, Neon, AWS RDS, Render или на своём сервере

Как настроить

  1. 1

    Подготовьте базу

    База должна быть доступна из интернета: адреса localhost и внутренней сети (10.x.x.x, 192.168.x.x) блок не принимает. Для схемы лучше завести отдельного пользователя базы с правами только на нужные таблицы.

  2. 2

    Добавьте вебхук

    Вебхук - это адрес, на который сайт или приложение отправляет данные. Создайте схему и поставьте триггер «webhook». Для записи выберите method POST и path, например /leads. Для чтения подойдёт GET и путь с параметром, например /orders/:id: значение из пути попадёт в params, тело запроса - в body.

  3. 3

    Подключите PostgreSQL

    Добавьте блок «Postgres external database operation». Вставьте строку подключения из панели провайдера или заполните хост, порт, имя базы, пользователя и пароль. Режим SSL require подходит большинству облачных баз, disable - если на сервере SSL не настроен.

  4. 4

    Напишите SQL-запрос

    В поле «SQL запрос» напишите команду, например INSERT INTO leads (name, phone) VALUES (...) RETURNING id, и на место значений подставьте поля из тела запроса вебхука. Значение в кавычках вместе с текстом внутри кавычек станет одним параметром. Запрос с переменными должен быть одной командой.

  5. 5

    Верните результат

    Добавьте блок «webhook response». В body json верните result из блока PostgreSQL: найденные строки, а для INSERT, UPDATE и DELETE с RETURNING - изменённые строки. Количество строк лежит в row_count. Status оставьте OK.

  6. 6

    Включите схему и проверьте

    Вебхук отвечает только во включённой схеме. Нажмите кнопку «API» в конструкторе, на вкладке «Попробовать» заполните тело запроса и нажмите «Отправить»: запрос по-настоящему запишет данные в базу. Если что-то не так, причина будет в поле error_text блока. Включённая схема стоит 0,42 ₽ в час.

Сколько стоит

Запуск блоков Вебхук стоит до 0,10 ₽, блоков PostgreSQL - 0,20 ₽. Каждый месяц баланс бесплатно пополняется до 350 ₽, включённая схема стоит 0,42 ₽ в час.

Сервисы в связке

  • Вебхук

    Принимайте заявки с сайта и события сервисов через вебхук и отвечайте на запросы без своего сервера и кода. Бесплатный баланс каждый месяц, карта не нужна.

  • PostgreSQL

    Подключите базу PostgreSQL к nana800: сохраняйте заявки, ищите заказы и меняйте статусы SQL-запросом из схемы. Бесплатный баланс каждый месяц, карта не нужна.

Частые вопросы

Вебхук стоит как базовый блок: 100 ₽ за 1 000 запросов. Запрос к PostgreSQL стоит вдвое дороже базового блока, ответ «webhook response» бесплатный. Включённая схема стоит 0,42 ₽ в час. Баланс каждый месяц бесплатно пополняется до 350 ₽, но если схема включена круглосуточно, большая часть этой суммы уходит на часы её работы.

Да. Переменные не вклеиваются в текст запроса, а уходят в базу отдельными значениями (параметрами), поэтому SQL-инъекция невозможна. Имя таблицы или колонки из переменной пишите в двойных кавычках, тогда оно станет экранированным именем.

Любую, до которой можно достучаться из интернета: Supabase, Neon, AWS RDS, Render или базу на своём сервере. Для облачных баз обычно подходит режим SSL require. Режим verify-full дополнительно проверяет сертификат сервера, для него можно вставить сертификат CA провайдера.

На подключение к базе блок ждёт до 10 секунд, сам SQL-запрос прерывается через 15 секунд. Тяжёлые выборки лучше ограничивать через LIMIT и индексы. Тот, кто вызвал вебхук, ждёт ответа схемы до 120 секунд.

Нажмите кнопку «API» в конструкторе. Там собраны адреса всех вебхуков схемы с кнопкой «Скопировать адрес», описание параметров и ответов, проверка запросом и файл OpenAPI для Postman или Insomnia. Адрес публичный, поэтому секретный заголовок стоит проверять блоком «condition».

Участники с правами только на чтение видят вместо пароля звёздочки. В логи запусков пароль тоже не попадает, поэтому историю схемы можно показывать коллегам.

Соберите первую схему бесплатно

Регистрация бесплатная, карта не нужна. Каждый месяц баланс бесплатно пополняется до 350 ₽, этого хватает примерно на 3 500 запусков простых блоков.

Собрать в конструкторе