> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rockapi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Интеграция API в продакшене: тайм-ауты, повторы и лимиты

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

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

## Проверьте один запрос и его условия

Уточните базовый URL, эндпоинт, способ авторизации, обязательные поля, формат ответа и единицу оплаты выбранного сервиса. API маркетплейса могут иметь собственные правила; не считайте, что все они используют адрес или формат ИИ-шлюза. Для работы с маркетплейсом используйте [руководство по подписке и онлайн-тестированию](https://docs.rockapi.ai/ru/blog/buyers/how-to-subscribe-and-test-openapi.md).

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

## Ограничьте время и число повторов

Задайте тайм-ауты соединения, чтения ответа и всей операции. Для потока нужен также предел времени без новых данных. Выбирайте значения по измерениям и допустимому ожиданию пользователя. Для короткой операции можно начать эксперимент с 5 секундами на соединение, 30 секундами на все выполнение и максимум двумя повторами. Это пример настройки, а не значения Rock API по умолчанию.

| Сигнал | Действие приложения |
| - | - |
| `400` или ошибка проверки | Исправить запрос, не отправлять тот же ввод снова. |
| `401` или `403` | Проверить ключи, права и подписку; остановить автоматические повторы. |
| `429` | Различить ограничение частоты и исчерпание квоты; снизить параллелизм и изучить ответ. |
| Временный `5xx` или сетевая ошибка | Повторить только при безопасной повторяемости и достаточном остатке времени. |

Применяйте экспоненциальную задержку со случайным разбросом и учитывайте `Retry-After`, если сервис его возвращает. Ограничьте суммарное число попыток и время. Совместно проверьте настройки SDK, прокси и обработчика задач, чтобы вложенные повторы не умножали нагрузку.

## Явно обрабатывайте неопределенный результат

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

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

## Проверьте квоты и запускайте постепенно

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

В безопасном окружении проверьте неверные ключи, некорректный ввод, исчерпание квоты, задержки, обрывы потоков и дубли. Начните с небольшой доли трафика и определите условия отката. Записывайте ID запроса, статус, длительность, число повторов и окончательно учтенное потребление без приватного содержимого. Увеличивайте трафик после проверки затрат и P95 относительно критериев приемки.

> [card] [Оцените безопасность и конфиденциальность API](https://docs.rockapi.ai/ru/blog/buyers/ai-api-security-privacy.md)
>
> До рабочего запуска проверьте путь данных, хранение, обращение с ключами и действия при инциденте.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.