Как читать и отлаживать JSON-ответы API
Когда интеграция ломается, ответ обычно находится в теле ответа API. Это руководство показывает, как получить ответ, сделать его читаемым и найти поля, которые объясняют, что пошло не так.
Открыть инструмент: Форматирование JSON-ответов API
1. Получите ответ целиком
Для запросов веб-страницы используйте вкладку «Сеть» в инструментах разработчика, для всего остального — curl. curl -i показывает код статуса и заголовки вместе с телом, и это часто объясняет ошибку ещё до чтения JSON.
Копируйте ответ полностью. Обрезанный ответ из лога или терминала отформатировать нельзя, потому что в нём не хватает закрывающих скобок.
2. Сначала посмотрите код статуса
| Статус | Значение | Что искать в теле ответа |
|---|---|---|
| 200, 201 | Успех | Запрошенные или созданные данные |
| 400, 422 | Некорректный запрос | Список полей и сообщений проверки |
| 401, 403 | Нет прав или их недостаточно | Подсказки о токене или области доступа |
| 404 | Не найдено | Неверен ли путь или ID |
| 429 | Слишком много запросов | Время ожидания или параметры лимита |
| 500–504 | Ошибка сервера или шлюза | ID запроса для поставщика API |
3. Сделайте ответ читаемым
Вставьте ответ в форматер JSON. Если он начинается с заголовков или обёртки JSONP, они будут удалены. Если вы видите много последовательностей \", JSON закодирован дважды, и форматер его декодирует.
Переключитесь на дерево и сверните большие массивы. Большинство API кладёт результаты в поле data, items или results, а сведения о страницах — в meta, links или next.
4. Следуйте пагинации
Списки обычно разбиты на страницы. Ищите поля next, next_cursor, page и total. Запрашивайте следующую страницу по курсору или URL, которые возвращает API, а не собирайте его сами: курсоры могут меняться между вызовами.
5. Осторожно с числами и датами
ID длиннее 15–16 цифр могут округляться в JavaScript. Используйте строковую версию ID, если API её предлагает. Даты обычно передаются строками ISO 8601, например 2026-01-15T09:30:00Z, где Z означает UTC. Переводите их в местное время только при показе.