Sobes.tech
Back to questions
Junior — Middle
144

Объясните концепцию interceptor и её роль в программных архитектурах

Companies where asked
AndersenAndersen

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);
  },
));