Skip to content

Метод copy

Метод copy() класса HttpClient позволяет создать новый экземпляр клиента с идентичными настройками (baseUrl, headers, middleware), не затрагивая оригинальный объект.

Для чего нужен

  • Изоляция конфигураций: Позволяет создавать независимые копии клиента для разных задач, не влияя на исходный экземпляр.
  • Безопасное расширение: Можно добавить или удалить middleware, изменить заголовки или базовый URL только для копии, не затрагивая основной клиент.
  • Удобство тестирования: Легко создавать временные клиенты для тестов или специфических запросов.

Пример использования

ts
const client = new HttpClient({
  baseUrl: "https://api.example.com",
}).registerMiddleware(authMiddleware);

// Создаём копию клиента и добавляем дополнительный middleware
const clientWithLogger = client.copy().registerMiddleware(loggerMiddleware);

// Оригинальный client не изменился, а clientWithLogger теперь логирует запросы

Особенности

  • Копируются все middleware, заголовки и baseUrl.
  • Копия полностью независима: изменения в копии не затрагивают оригинал.
  • Удобно использовать для временных изменений конфигурации или для параллельных запросов с разными настройками.

Рекомендуется использовать copy(), если нужно временно изменить поведение клиента или создать несколько клиентов с похожей, но не идентичной конфигурацией.