Опишите запросы и ответы
Для каждой операции документируйте метод, ресурс, необходимые поля и структуру успешного ответа. Включите ошибку валидации. Различайте сбой передачи и отклонённый запрос: отсутствие ответа не доказывает, что операция, изменяющая состояние, не удалась.
Храните ключи отдельно от кода
Держите учетные данные сервера вне пакетов браузера и исходных репозиториев. Запрашивайте минимально необходимый набор разрешений и разделяйте доступ для разработки и продакшена. Записывайте, кто владеет каждой интеграцией и как можно отозвать доступ. Следуйте задокументированному провайдером потоку авторизации.
Учитывайте сбои внешних сервисов
Устанавливайте тайм-ауты, соблюдайте рекомендации по ограничению скорости и повторяйте запросы только тогда, когда операция безопасна для повторения. Там, где это поддерживается, ключ идемпотентности может идентифицировать повторяющиеся запросы. Логируйте идентификатор запроса и краткую категорию ошибки; избегайте заголовков авторизации, cookie сессий и личных данных.