Разработка · 8 мин чтения

Приложение на основе API сайта: с чего начать

Приложение на основе API сайта - это когда у вас уже есть сайт с данными: каталог, заказы, склад, личные кабинеты, и вместо повторного ввода той же информации вы строите отдельный продукт, который читает и пишет через тот же API. Это может быть Telegram-бот, мобильное приложение, внутренняя CRM-панель или отдельный SaaS-сервис для клиентов. За последние пару лет я делал такие проекты и поверх Tilda с кастомным бэкендом, и поверх WooCommerce, и с нуля на Laravel, и в каждом случае первые вопросы одинаковые: что реально отдаёт API, какие лимиты у запросов и вебхуков, и как не переписывать интеграцию через три месяца, когда на сайте поменяют структуру данных.

Когда нужно приложение на основе API сайта, а когда хватит доработки

Не каждая задача требует отдельного приложения. Если нужно поменять текст на странице, добавить форму или посчитать скидку по промокоду - это доработка самого сайта, и на Tilda такие вещи закрываются кастомным скриптом за пару дней. Отдельное приложение имеет смысл, когда данные с сайта нужны в другом месте и в другом виде: менеджеру в Telegram, кладовщику в мобильном приложении, бухгалтеру в отчёте, который сайт сам никогда не покажет.

Пример из практики: у клиента интернет-магазин на WooCommerce, и менеджеры весь день сидели в админке WordPress, чтобы посмотреть новые заказы и проставить статус доставки. Мы собрали Telegram-бота на aiogram, который читает заказы через WooCommerce REST API и присылает уведомление в чат сразу после оплаты через T‑Bank. Админка осталась для бухгалтерии, а рутинная работа менеджеров переехала туда, где они и так сидят весь день.

Другой пример - интернет-магазин с доставкой через СДЭК, где вручную считали стоимость и сроки в личном кабинете транспортной компании, а потом переносили цифры в заказ на сайте. Отдельное приложение забирает эти расчёты через API СДЭК и подставляет их клиенту сразу на странице оформления, без ручного пересчёта.

Что проверить в API сайта до начала разработки

Прежде чем писать код, я смотрю на четыре вещи.

  • Тип API. REST встречается чаще всего, у WooCommerce и большинства CMS он готовый из коробки. Иногда сайт отдаёт данные только через вебхуки, без возможности запросить их по требованию, и тогда приложение приходится строить вокруг событий, а не вокруг запросов.
  • Авторизация. У WooCommerce это consumer key и consumer secret, у T‑Bank для эквайринга - токен терминала и подпись запроса по алгоритму из документации, у Tilda - персональный API-ключ проекта. Формат разный, но логика одна: ключи хранятся на сервере приложения, а не в коде клиента, иначе их вытащат из исходников за пять минут.
  • Лимиты запросов. Rate limit есть почти у всех API, и если приложение дёргает его на каждое действие пользователя, довольно быстро упрётесь в ответ с кодом 429. Решается кэшем и очередью задач, но закладывать архитектуру под это нужно сразу, а не после первого падения бота в проде.
  • Что можно писать, а что только читать. Часть API отдаёт данные только на чтение: каталог, остатки, статистику. Изменение статуса заказа или списание товара идёт через отдельные, более закрытые эндпоинты либо вообще недоступно - тогда приложение работает в связке с админкой сайта, а не вместо неё.

Отдельно смотрю на документацию и версионирование: если у API нет описания эндпоинтов, а есть только «спросите у бэкенд-разработчика в чате», закладываю время на то, чтобы вытащить всё самому через DevTools и тестовые запросы. А если версия API у сайта уже вторая или третья, уточняю, когда закроют предыдущую - иначе приложение может сломаться в день, когда старую версию отключат без предупреждения.

Так выглядит обычный запрос списка заказов в статусе «в обработке» через WooCommerce REST API - ключи консьюмера передаются базовой авторизацией, а не в адресной строке:

curl -X GET "https://shop.example.com/wp-json/wc/v3/orders?status=processing" \
  -u ck_71a9...:cs_44f2...

Бесплатный материал

🎁 Полезный скрипт в подарок

Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.

Без спама. Отписка в 1 клик.

Архитектура: как клиентское приложение обменивается данными с API сайта

Работают два подхода, и обычно их совмещают.

Первый - синхронные запросы: приложение спрашивает API сайта каждый раз, когда пользователю нужны свежие данные. Годится для панелей администратора и CRM, где важна актуальность, а нагрузка невысокая.

Второй - события через вебхуки: сайт сам присылает уведомление, когда что-то произошло, а приложение только реагирует. Так устроена доставка статусов у СДЭК - трекер шлёт вебхук об изменении статуса посылки, и опрашивать их API в цикле, проверяя, не изменилось ли что-то, не нужно и не имеет смысла.

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

Логирование ошибок подключаю сразу, а не когда что-то отвалилось: если API сайта вернул 500‑ю ошибку или изменил формат ответа, хочу узнать об этом из уведомления, а не от клиента, который написал, что бот перестал отвечать.

Стек для разработки приложения на API сайта

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

Для собственного бэкенда, который проксирует, кэширует и обогащает данные из API сайта, беру Laravel - там из коробки есть очереди, кэш и HTTP-клиент под такие задачи. Для панели администратора или клиентского кабинета поверх этого бэкенда - React.

Если задача - бот для отдела продаж или клиентов в Telegram, использую aiogram на Python: он быстро связывается с любым REST API и не требует отдельного фронтенда, а первую рабочую версию можно показать заказчику за неделю.

Когда логика простая - переложить данные из одной системы в другую, посчитать что-то и отправить уведомление - обхожусь без отдельного бэкенда через n8n: он умеет дёргать HTTP-запросы к API сайта, принимать вебхуки и писать результат в CRM или таблицу. Для интеграции вида «заказ на сайте - уведомление в отдел продаж - запись в CRM» это быстрее и дешевле, чем поднимать сервер с нуля.

Отдельного нативного мобильного приложения на этом стеке обычно не делаю - чаще хватает PWA или Telegram-мини-аппа поверх того же бэкенда, это дешевле и быстрее в поддержке.

Часть готовых решений под Tilda уже собрана заранее - смотрите готовые скрипты, например калькулятор зон доставки и конвертер валют, которые можно взять за основу вместо разработки с нуля.

Практические сценарии: где приложение поверх API сайта окупается быстрее всего

  • Приём оплаты и синхронизация заказов: эквайринг T‑Bank на сайте, статус оплаты приходит вебхуком, дальше бот или CRM реагируют без участия человека.
  • Доставка: расчёт стоимости и сроков через API СДЭК прямо в приложении заказа, без похода в личный кабинет транспортной компании.
  • Внутренние отчёты: дашборд на Vue или React, который раз в сутки забирает данные из API сайта и считает выручку, средний чек, остатки - без ручного экспорта из админки.
  • Автоматизация рутины в n8n: сценарий «новый лид с формы на сайте - проверка на дубль в CRM - уведомление в Telegram менеджеру» собирается за пару дней без единой строчки кода бэкенда.
  • ИИ поверх данных сайта: чат-бот с базой знаний на Claude API, который отвечает клиентам по каталогу и условиям доставки, а не просто пересказывает FAQ-страницу.
  • Мобильное приложение для курьера или кладовщика: список задач на день подтягивается из API сайта, а отметка о выполнении уходит обратно тем же путём, без бумажных накладных.

Сколько стоит и сколько занимает разработка приложения на API сайта

Цена и срок сильно зависят от того, что именно строим поверх API, поэтому сравнивать лендинг и SaaS в одной строке смысла нет - у них разный объём работы, а не разная сложность самого подключения к API.

В оценку закладываю не только код: разведку API, тестовые запросы к рабочим и тестовым окружениям сайта и минимум неделю на проверку под реальными данными после запуска.

Что делаем Цена Срок
Telegram-бот на aiogram поверх API сайта от 30 000 ₽ от 1-2 недель
Сценарий автоматизации в n8n от 25 000 ₽ от 1 недели
Парсинг и автоматизация на Python от 20 000 ₽ от 1-2 недель
Комплексная интеграция для Tilda (CRM, эквайринг, СДЭК) от 40 000 ₽ от 2 недель
CRM или админ-панель на React поверх API от 100 000 ₽ от 4 недель
API-бэкенд на Laravel от 100 000 ₽ от 3-4 недель
Веб-сервис или SPA поверх API сайта от 300 000 ₽ от 8 недель
AI-интеграция поверх данных сайта (Claude API, RAG) от 50 000 ₽ от 2-3 недель

Домен и SSL в эти цифры не входят и от типа приложения не зависят: доменная зона .ru стоит иначе, чем .com, а цена сертификата определяется его типом, а не тем, что вы строите. Комиссия эквайринга у T‑Bank и других банков - это тариф самого банка, он одинаковый что для лендинга, что для сложного SaaS.

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

Нужен ли доступ к исходному коду сайта, чтобы разработать приложение на его API?

Нет, если API уже есть и документирован - достаточно ключей доступа и описания эндпоинтов. Доступ к коду нужен только когда API нет вообще и его приходится добавлять на сам сайт.

Что делать, если у сайта нет публичного API?

Смотрю, что предоставляет платформа: у большинства CMS и конструкторов, включая Tilda и WordPress, есть встроенный или официальный API, просто не всегда включённый по умолчанию. Если совсем ничего нет, добавляю минимальный API на сам сайт - отдельные эндпоинты под конкретную задачу, без переписывания всей платформы. На разведку обычно уходит день-два, дальше это закладывается в оценку проекта отдельной строкой.

Сколько стоит поддержка приложения, если API сайта поменяется?

Отдельно, по факту работ - бесплатные доработки на будущее я не закладываю ни в один проект. Техподдержка с реакцией на изменения API оформляется отдельно, от 15 000 ₽ в месяц, и туда входит мониторинг ошибок и правки под новые версии эндпоинтов.

Какой стек выбрать: полноценный бэкенд или n8n без кода?

Если логика укладывается в «получить данные - обработать - отправить» без сложных условий, n8n закрывает это быстрее и дешевле. Как только появляется своя бизнес-логика, хранение данных и права доступа для разных ролей, нужен отдельный бэкенд - тут беру Laravel или Node.js в зависимости от того, что уже есть в проекте.

Есть задача?

Обсудим в мессенджере

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов куки) с использованием Yandex.Metrika.
Понятно