Разбор задачи

Публичный API SaaS-продукта: интеграции клиентов с 1С и CRM без поддержки каждой

Каждый клиент подключается по одному документированному интерфейсу, а не по отдельной доработке под него

Проверяется: контрактные тесты и песочница для клиентов

SaaS и продуктыРаботаем по NDA

Задача

SaaS-продукт продаётся компаниям, у которых есть 1С, CRM и свои сайты. Каждый просит обмен, и каждый раз делается отдельная доработка. Команда не успевает развивать продукт, а любое изменение формата ломает чьё-то подключение.

Где ломается

Что съедает срок и бюджет на самом деле

Проблема не в количестве интеграций, а в отсутствии договорённого интерфейса. Вот что мешает.

Нет версий интерфейса

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

Повтор запроса создаёт дубль

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

Нет лимитов и журнала

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

Клиенты не могут проверить свою интеграцию

без песочницы любая проверка идёт на боевых данных. Нужна тестовая среда с понятными примерами.

Ограничение, которое определяет решение

Интеграции с 1С зависят от конфигураций клиентов, которые мы не контролируем. Поэтому продукт даёт стабильный интерфейс и документацию, а обмен на стороне 1С клиента делается отдельной работой по нашей шкале интеграций. Мы не обещаем «подключим любую систему»: требуется интерфейс или выгрузка с их стороны, и об этом говорим до договора.

Как проверить, что работа сделана

Контрактные тесты: автоматический набор проверяет, что ответы интерфейса соответствуют описанию, и запускается на каждом изменении.

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

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

О чём спросить любого подрядчика

  • Как версионируется интерфейс и как долго живёт старая версия.
  • Как защищено от дублей при повторе запроса.
  • Какие лимиты установлены и что видит клиент при превышении.
  • Есть ли тестовая среда и описание интерфейса в стандартном формате.
  • Кто сопровождает подключения клиентов и как это оплачивается.
Порядок работ

Как мы идём по этапам

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

  1. Опрос клиентовВыясняем, какие данные и события нужны чаще всего. Результат: перечень сущностей и операций интерфейса.
  2. Описание интерфейсаПишем описание до кода и согласуем его с несколькими клиентами. Результат: документ, по которому можно подключаться.
  3. РеализацияВерсии, ключи идемпотентности, лимиты, вебхуки, журнал вызовов. Результат: рабочий интерфейс на стенде.
  4. Песочница и примерыТестовая среда и готовые примеры обмена с 1С и CRM. Результат: подключение без участия команды.
  5. Сопровождение подключенийМониторинг ошибок по клиентам и порядок обращений. Передаём код и регламент.
Архитектура и стек

Как это обычно устроено внутри

Типовая схема: программный интерфейс с версиями в адресе, аутентификация ключами с ограниченными правами, ключи идемпотентности для изменяющих запросов, очередь для тяжёлых операций. Изменения клиентов отправляются вебхуками с подписью и повтором. Все вызовы пишутся в журнал с идентификатором клиента.

Типовой стек
  • REST API
  • OpenAPI
  • Вебхуки
  • PostgreSQL
  • Очередь задач
  • Контрактные тесты

Похожая задача у вас?

Разберём её на созвоне за 40 минут: назовём объём работ, ограничения контура и по каким числам вы будете принимать результат. Если задача не наша — скажем прямо.