import {Meta} from '@storybook/addon-docs/blocks'

<Meta title='@dxtmisha/ru/functional-basic/Classes/ApiDefault - Данные API по умолчанию'/>

# Класс ApiDefault

Класс для управления данными по умолчанию для API-запросов. Он позволяет устанавливать базовые параметры, которые должны быть включены в каждый запрос, поддерживая как стандартные объекты, так и `FormData`. Это полезно для централизованного определения общих полей, таких как токены, ID приложения или настройки локализации.

> `ApiDefault` является **вспомогательным классом**, предназначенным для управления значениями по умолчанию в запросах. В большинстве случаев рекомендуется определять их через параметр `requestDefault` в глобальной конфигурации `Api`.

## Ключевые особенности

- **Централизованные значения** — Определите общие параметры один раз для всех вызовов API.
- **Поддержка различных форматов** — Бесшовно работает как с обычными объектами JavaScript, так и с `FormData`.
- **Интеллектуальное слияние** — Объединяет значения по умолчанию с данными конкретного запроса, отдавая приоритет данным запроса при совпадении ключей.
- **Chainable API** — Поддерживает цепочку вызовов при установке параметров.

## Методы

### Действие

#### `request`

Объединяет сохраненные данные по умолчанию с предоставленным объектом запроса или экземпляром `FormData`. Если входные данные являются объектом, метод возвращает новый объединенный объект. Если входные данные — `FormData`, недостающие ключи добавляются напрямую в экземпляр.

**Параметры:**
- `request: ApiFetch['request']` — Исходные данные запроса (Object, FormData или String).

**Возвращает:** `ApiFetch['request']` — Трансформированные данные запроса.

### Проверка

- `is(): boolean` — Проверяет, были ли установлены какие-либо данные по умолчанию.
- `get(): ApiDefaultValue | undefined` — Возвращает текущий объект данных по умолчанию.

### Конфигурация

- `set(request: ApiDefaultValue): this` — Устанавливает данные по умолчанию для всех будущих запросов.

## Типы

#### `ApiDefaultValue`
Обычный объект, представляющий параметры по умолчанию.
- `[key: string]: any` — Пары ключе-значение, используемые по умолчанию.
