Описать проблему ↗

Интеграции

После изменения API интеграция перестала разбирать ответ

После изменения внешнего API интеграция перестала читать ответы. Объясняем, как найти несовместимое поле и восстановить обработку без тихой потери данных.

Редакция «починимсайт» · Обновлено · 3 мин. чтения

Что происходит и с чего начать

API задаёт формат общения программ: адреса, параметры и структуру ответов. Даже при успешном соединении приложение может не понять полученные данные. Поэтому нужно различать сетевой отказ и ошибку разбора результата. Сохраните безопасный пример ответа и сравните с последней рабочей версией. Важно понять, изменился ли сам контракт сервиса, версия подключения или данные конкретной записи. Не каждое отсутствующее поле означает глобальное изменение API: иногда оно просто необязательно для части объектов.

Что можно проверить самостоятельно

  1. Запишите время начала отказов, метод API и используемую версию. Сохраните безопасные примеры успешного и проблемного ответа, убрав токены и персональные сведения.
  2. Проверьте, затронуты все объекты или только записи с определёнными особенностями. Например, пустым полем, несколькими страницами результатов или новым типом статуса.
  3. Уточните, приходили ли уведомления провайдера об изменениях и менялись ли настройки подключения. Не запускайте массовый импорт, пока не ясно, как обработчик ведёт себя с неверно прочитанными данными.

Как понять результаты проверки

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

Что проверяет разработчик

Для этой части понадобятся доступ к настройкам, журналам ошибок или коду. Её можно передать специалисту вместе с результатами предыдущих шагов.

  1. Запишите HTTP-статус, Content-Type и безопасный пример ответа. Проверьте, не пришла ли страница авторизации вместо данных.
  2. Сравните обязательные поля, типы, вложенность и допустимые пустые значения. Число, строка и null могут обрабатываться старым кодом по-разному.
  3. Уточните используемую версию API и изменения пагинации. Интеграция может обрабатывать только первую страницу после смены контракта.

На что обратить внимание

Код, который обращается к полю без проверки, падает при небольшом изменении ответа. Ещё опаснее незаметное принятие неполных данных как успешного результата.

Как исправляют причину

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

Как убедиться, что проблема решена

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

После ремонта проверьте обычный ответ, необязательные поля и несколько страниц списка. Сверьте контрольные записи с источником, включая типы и единицы измерения. Если прежняя ошибка уже изменила данные, их восстановление рассматривается отдельно. Успешный новый запрос не отменяет последствия старого импорта, поэтому важно назвать затронутый период и способ проверки ранее обработанных объектов.