33 lines
1.6 KiB
Plaintext
33 lines
1.6 KiB
Plaintext
|
|
---
|
|||
|
|
description: REST API запросы — создавать функции в furumiApi.ts (только furumi-node-player/client)
|
|||
|
|
globs: furumi-node-player/client/**/*.{ts,tsx}
|
|||
|
|
alwaysApply: false
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# REST API в furumi-node-player
|
|||
|
|
|
|||
|
|
**Область действия:** правило применяется только к проекту `furumi-node-player/client/`. В остальных частях репозитория можно использовать другой подход.
|
|||
|
|
|
|||
|
|
Чтобы выполнить REST API запрос, нужно создать функцию, которая принимает необходимые параметры и вызывает `furumiApi`. Все такие функции должны находиться в файле `furumi-node-player/client/src/furumiApi.ts`.
|
|||
|
|
|
|||
|
|
## Правила
|
|||
|
|
|
|||
|
|
1. **Не вызывать `furumiApi` напрямую** из компонентов или других модулей.
|
|||
|
|
2. **Добавлять новую функцию** в `furumiApi.ts` для каждого эндпоинта.
|
|||
|
|
3. Функция принимает нужные параметры и возвращает `Promise` с данными (или `null` при ошибке).
|
|||
|
|
|
|||
|
|
## Пример
|
|||
|
|
|
|||
|
|
```typescript
|
|||
|
|
// furumiApi.ts — добавлять сюда
|
|||
|
|
export async function getSomething(id: string) {
|
|||
|
|
const res = await furumiApi.get(`/something/${id}`).catch(() => null)
|
|||
|
|
return res?.data ?? null
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
```typescript
|
|||
|
|
// FurumiPlayer.tsx — использовать функцию, не furumiApi напрямую
|
|||
|
|
const data = await getSomething(id)
|
|||
|
|
```
|