forked from templates/nextjs-template
style: Обновление код стайла
This commit is contained in:
50
ai/nextjs-style-guide/applied/rest-client/index.md
Normal file
50
ai/nextjs-style-guide/applied/rest-client/index.md
Normal file
@@ -0,0 +1,50 @@
|
||||
---
|
||||
title: REST-клиент
|
||||
description: Настройка REST-клиента сервиса для работы с внешним API.
|
||||
keywords: [rest, api, данные, infra, клиент, swr, стратегии]
|
||||
---
|
||||
|
||||
# REST-клиент
|
||||
|
||||
Настройка REST-клиента сервиса для работы с внешним API.
|
||||
|
||||
## Настройка
|
||||
|
||||
Для каждого внешнего сервиса создаётся отдельный API-клиент: `pet-store-api`, `billing-api`, `maps-api`.
|
||||
|
||||
На этом этапе внешний API оформляется как модуль слоя `infra/`.
|
||||
|
||||
Клиент отвечает за:
|
||||
|
||||
- генерацию или ручное описание методов API;
|
||||
- настройку `baseUrl`;
|
||||
- заголовки и авторизацию;
|
||||
- обработку ошибок;
|
||||
- кастомизацию и расширение типов;
|
||||
- GET-хуки для клиентских компонентов;
|
||||
- прямое использование методов клиента в серверном коде и submit-функциях;
|
||||
- публичный API модуля.
|
||||
|
||||
Если у API есть OpenAPI-спецификация — клиент генерируется автоматически. Если OpenAPI нет или он неполный — клиент создаётся вручную.
|
||||
|
||||
GET-хуки относятся к клиенту, потому что это прозрачные SWR-обёртки над GET-методами этого клиента.
|
||||
|
||||
Подробнее:
|
||||
|
||||
- [Настройка REST-клиента](./setup/index.md)
|
||||
- [Автогенерация из OpenAPI](./setup/auto.md)
|
||||
- [Ручное создание](./setup/manual.md)
|
||||
- [GET-хуки REST-клиента](./setup/hooks.md)
|
||||
- [Использование REST-клиента](./usage.md)
|
||||
|
||||
## Как читать раздел
|
||||
|
||||
Если API ещё не подключён — начните с [Настройки REST-клиента](./setup/index.md).
|
||||
|
||||
Если клиент уже создан и нужно вызвать его методы — откройте [Использование REST-клиента](./usage.md).
|
||||
|
||||
Если клиент уже есть, но непонятно как получить данные — начните с раздела [Получение данных](../data-fetch/index.md).
|
||||
|
||||
Если данные нужны в Client Component — сначала проверьте, есть ли [GET-хук REST-клиента](./setup/hooks.md).
|
||||
|
||||
Если в коде появляется бизнес-смысл вроде `isAuth`, `canEdit`, `hasAccess` — это уже не REST-клиент, а `business/`.
|
||||
Reference in New Issue
Block a user