Back to questions
Andersen
Junior — Middle
146
Объясните концепцию interceptor и её роль в программных архитектурах
Companies where asked
Answer from AI
sobes.tech AI
Interceptor — это паттерн проектирования, который позволяет перехватывать и обрабатывать запросы или вызовы до того, как они достигнут основной логики, а также после её выполнения. В программных архитектурах interceptor часто используется для внедрения дополнительного поведения, например, логирования, аутентификации, кэширования или обработки ошибок, без изменения основного кода.
В контексте Flutter и работы с HTTP-запросами (например, с пакетом Dio) interceptor позволяет перехватывать запросы и ответы, модифицировать их, добавлять заголовки или обрабатывать ошибки централизованно.
Пример использования interceptor в Dio:
final dio = Dio();
dio.interceptors.add(InterceptorsWrapper(
onRequest: (options, handler) {
// Добавляем токен авторизации к каждому запросу
options.headers['Authorization'] = 'Bearer your_token';
return handler.next(options);
},
onResponse: (response, handler) {
// Логируем успешный ответ
print('Response: \\${response.statusCode}');
return handler.next(response);
},
onError: (DioError e, handler) {
// Обрабатываем ошибки централизованно
print('Error: \\${e.message}');
return handler.next(e);
},
));