REST API для MongoDB без кода: вебхук, операция с базой и ответ
REST API для MongoDB без кода в nana800 собирается из готового шаблона: вебхук принимает запрос с коллекцией, фильтром и данными, блок MongoDB выполняет операцию с вашей базой, а результат уходит обратно отправителю. Свой сервер не нужен, достаточно строки подключения к базе MongoDB или Atlas. Один запрос к такому API стоит три запуска базового блока, а баланс каждый месяц бесплатно пополняется до 350 ₽.
Собрать в конструкторе
Цепочка блоков
- 1
Триггер
«button» запускает схему вручную для проверки. Блок базы берёт коллекцию и фильтр из запроса, поэтому для проверки кнопкой впишите в его поля пробные значения или проверяйте схему на странице «API».
- 2
Триггер · Вебхук (триггер)
«webhook» - адрес вашего API. Принимает JSON с полями collection (коллекция), filter (фильтр, его нужно присылать всегда, хотя бы {}) и data (данные для записи).
- 3
Действие · Операция с базой MongoDB
«Mongodb Database external operation» выполняет операцию с вашей базой. В шаблоне выбрана FIND_ONE - найти одну запись, коллекция и фильтр берутся из запроса, а строку подключения вписываете вы.
- 4
Действие · Ответ на вебхук
«webhook response» отвечает отправителю кодом 200 и JSON с полем success и результатом операции в поле data.
Для каких задач подходит
- Отдавать сайту или мобильному приложению данные из MongoDB: товар, заказ, профиль клиента
- Принимать заявки и заказы с сайта и сохранять их в коллекцию операцией CREATE_ONE
- Менять статус заказа по запросу из CRM или платёжного сервиса через оператор $set
- Собрать прототип приложения без своего сервера: каждый адрес API - отдельный вебхук со своей операцией
- Дать доступ к базе сервисам без кода: любой сервис, который умеет отправлять запросы, читает и пишет записи
Как настроить
- 1
Откройте шаблон
В конструкторе откройте «Готовые решения», найдите шаблон «Simple REST API with MongoDB» и нажмите «Использовать». В выбранном проекте появится схема из четырёх уже связанных блоков.
- 2
Вставьте строку подключения
В блоке «Mongodb Database external operation» замените текст в «Строке подключения» адресом вашей базы, например mongodb+srv://логин:пароль@cluster0.xxxxx.mongodb.net/имя_базы. Особые символы в пароле замените кодами, например @ на %40. База должна быть доступна из интернета: в Atlas разрешите подключения в настройках сетевого доступа.
- 3
Выберите операцию и коллекцию
В шаблоне выбрана FIND_ONE. Для новых записей выберите CREATE_ONE: поле data из запроса попадёт в «Данные для записи». Для правки выберите UPDATE_ONE, тогда data пишется с оператором, например {"$set": {"status": "done"}}. Надёжнее вписать название коллекции прямо в блок, чем брать его из запроса.
- 4
Настройте вебхук
В блоке «webhook» выберите method POST: в шаблоне стоит GET, а данные приходят в теле запроса. В path впишите путь, например /orders/find. Для других операций добавьте в схему ещё вебхуки со своими путями, у каждого свой блок MongoDB и свой ответ.
- 5
Поправьте тело ответа
В блоке «webhook response» результат подставлен в кавычках, а найденная запись - это объект JSON, поэтому ответ получается неверным JSON. Перенесите тело в поле body json, уберите кавычки вокруг подстановки result, а поле body raw очистите. Тогда отправитель получит запись обычным JSON.
- 6
Включите схему и проверьте
Включите схему, нажмите кнопку «API» в конструкторе и на вкладке «Попробовать» отправьте JSON вида {"collection": "orders", "filter": {"status": "new"}}. Запрос по-настоящему выполняется в вашей базе, в ответе придёт найденная запись. Включённая схема стоит 0,42 ₽ в час.
Сервисы в шаблоне
- Вебхук
Принимайте заявки с сайта и события сервисов через вебхук и отвечайте на запросы без своего сервера и кода. Бесплатный баланс каждый месяц, карта не нужна.
- MongoDB
Подключите MongoDB или Atlas к nana800: ищите, создавайте, обновляйте и удаляйте записи из схемы без своего сервера. Бесплатный баланс каждый месяц, карта не нужна.
Частые вопросы
Соберите первую схему бесплатно
Регистрация бесплатная, карта не нужна. Каждый месяц баланс бесплатно пополняется до 350 ₽, этого хватает примерно на 3 500 запусков простых блоков.
Собрать в конструкторе