# Стандарти модуля API

Цей файл перевизначає кореневий CLAUDE.md для всього у /src/api/

## Специфічні стандарти API

### Валідація запитів
- Використовувати Zod для валідації схем
- Завжди валідувати вхідні дані
- Повертати 400 з помилками валідації
- Включати деталі помилок на рівні полів

### Автентифікація
- Усі ендпоінти вимагають JWT-токен
- Токен у заголовку Authorization
- Токен закінчується через 24 години
- Реалізувати механізм refresh-токенів

### Формат відповіді

Усі відповіді мають дотримуватися цієї структури:

```json
{
  "success": true,
  "data": { /* фактичні дані */ },
  "timestamp": "2025-11-06T10:30:00Z",
  "version": "1.0"
}
```

Відповіді з помилками:
```json
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Повідомлення для користувача",
    "details": { /* помилки полів */ }
  },
  "timestamp": "2025-11-06T10:30:00Z"
}
```

### Пагінація
- Використовувати пагінацію на основі курсора (не зсуву/offset)
- Включати булеве поле `hasMore`
- Максимальний розмір сторінки: 100
- Розмір сторінки за замовчуванням: 20

### Обмеження частоти запитів (Rate Limiting)
- 1000 запитів на годину для автентифікованих користувачів
- 100 запитів на годину для публічних ендпоінтів
- Повертати 429 при перевищенні
- Включати заголовок retry-after

### Кешування
- Використовувати Redis для кешування сесій
- Тривалість кешу: 5 хвилин за замовчуванням
- Інвалідувати при операціях запису
- Тегувати ключі кешу типом ресурсу

---
**Останнє оновлення**: 9 квітня 2026
