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)
|
||
```
|