Создание клиента
REST-клиент — это infrastructure-модуль, через который проект работает с внешним REST API.
На этом этапе нужно подготовить клиент сервиса: создать оболочку клиента, получить методы API и добавить GET-хуки для клиентских компонентов.
Из чего состоит клиент
REST-клиент состоит из трёх основных частей:
- Клиент — самописная оболочка над транспортом.
- Методы — сгенерированные из OpenAPI или написанные вручную вызовы API.
- GET-хуки — SWR-обёртки для GET-запросов.
Эти части живут в одном REST-модуле, потому что относятся к одному внешнему сервису.
Клиент
Клиент — ручной слой, который настраивает работу с API: baseUrl, заголовки, авторизацию, обработку ошибок и создание инстанса сервиса.
Даже если методы генерируются из OpenAPI, client.ts остаётся ручным файлом проекта.
client.ts — только сборочная точка клиента. В нём не размещаются DTO, declare module, Extended-типы, GET-хуки и бизнес-логика.
Методы
Методы описывают конкретные запросы к API.
Они появляются одним из двух способов:
- генерируются из OpenAPI в
generated/; - создаются вручную в
methods/.
Подробности:
GET-хуки
Для GET-запросов добавляются GET-хуки REST-клиента.
Это прозрачные SWR-обёртки над GET-методами клиента. Они живут в hooks/ этого же REST-модуля и нужны для использования данных в Client Components.
GET-хуки именуются с префиксом useGet: useGetPetList, useGetPetDetail, useGetCurrentUser.
Подробности:
Структура модуля
src/infrastructure/{service-name}/
├── client.ts # самописная оболочка и инстанс клиента
├── generated/ или methods/ # методы API
├── hooks/ # GET-хуки REST-клиента
├── types/ # DTO, типы API и расширения типов
├── errors/ # ошибки API, если нужны
└── index.ts # публичный APIindex.ts — единственная точка входа в REST-модуль для внешнего кода.
Что делаем дальше
- Создайте методы клиента: Автогенерация из OpenAPI или Ручное создание.
- Добавьте GET-хуки для GET-запросов: GET-хуки REST-клиента.
- После создания клиента переходите к Стратегиям получения данных.