Skip to content

Создание клиента

REST-клиент — это infrastructure-модуль, через который проект работает с внешним REST API.

На этом этапе нужно подготовить клиент сервиса: создать оболочку клиента, получить методы API и добавить GET-хуки для клиентских компонентов.

Из чего состоит клиент

REST-клиент состоит из трёх основных частей:

  1. Клиент — самописная оболочка над транспортом.
  2. Методы — сгенерированные из OpenAPI или написанные вручную вызовы API.
  3. 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.

Подробности:

Структура модуля

text
src/infrastructure/{service-name}/
├── client.ts                 # самописная оболочка и инстанс клиента
├── generated/ или methods/   # методы API
├── hooks/                    # GET-хуки REST-клиента
├── types/                    # DTO, типы API и расширения типов
├── errors/                   # ошибки API, если нужны
└── index.ts                  # публичный API

index.ts — единственная точка входа в REST-модуль для внешнего кода.

Что делаем дальше

  1. Создайте методы клиента: Автогенерация из OpenAPI или Ручное создание.
  2. Добавьте GET-хуки для GET-запросов: GET-хуки REST-клиента.
  3. После создания клиента переходите к Стратегиям получения данных.