REST API ArtHunt
Версия: 1.0.0
Формат: OpenAPI 3.0.3
Аутентиф икация: Bearer JWT
Полная спецификация API доступна в файле docs/api/arthuntapi.yaml (OpenAPI 3.0.3).
Базовый URL
https://api.arthunt.ru/
Версионирование
Рекомендуется добавить префикс /api/v1/ для всех эндпоинтов с первого дня. Это упростит внесение breaking changes в будущем.
Аутентификация
Все защищённые эндпоинты требуют JWT-токен в заголовке:
Authorization: Bearer <token>
Токен получается через /auth/login или /auth/register. Время жизни токена — рекомендуется 15 минут (access) + refresh token.
Группы эндпоинтов
Auth — Регистрация и аутентификация
| Метод | Путь | Описание |
|---|---|---|
POST | /auth/register | Регистрация нового пользователя |
POST | /auth/login | Вход по email и паролю |
GET | /auth/confirm-email | Подтверждение email по токену |
Specialists — Профили специалистов
| Метод | Путь | Описание |
|---|---|---|
GET | /specialists | Поиск специалистов с фильтрами |
POST | /specialists | Создать профиль специалиста |
GET | /specialists/{id} | Получить профиль специалиста |
PATCH | /specialists/{id} | Обновить профиль |
Portfolio — Портфолио специалиста
| Метод | Путь | Описание |
|---|---|---|
GET | /specialists/{id}/portfolio | Список работ в портфолио |
POST | /specialists/{id}/portfolio | Добавить работу |
DELETE | /specialists/{id}/portfolio/{itemId} | Удалить работу |
Projects — Проекты заказчиков
| Метод | Путь | Описание |
|---|---|---|
GET | /projects | Список активных проектов |
POST | /projects | Создать проект |
GET | /projects/{id} | Получить проект |
PATCH | /projects/{id} | Обновить проект |
Responses — Отклики
| Метод | Путь | Описание |
|---|---|---|
GET | /projects/{id}/responses | Список откликов на проект |
POST | /projects/{id}/responses | Создать отклик |
PATCH | /projects/{id}/responses/{responseId} | Принять/отклонить отклик |
Invitations — Приглашения
| Метод | Путь | Описание |
|---|---|---|
POST | /invitations | Создать приглашение |
GET | /specialists/{id}/invitations | Приглашения специалиста |
PATCH | /invitations/{id} | Принять/отклонить приглашение |
Tags — Справочник тегов
| Метод | Путь | Описание |
|---|---|---|
GET | /tags | Список всех тегов по категориям |
Коды ошибок
| Код | Описание |
|---|---|
400 | Некорректный запрос (validation error) |
401 | Не авторизован |
403 | Нет прав доступа |
404 | Ресурс не найден |
409 | Конфликт (например, email уже существует) |
422 | Бизнес-правило нарушено |
429 | Too Many Requests (rate limit) |
500 | Внутренняя ошибка сервера |
Rate Limiting (рекомендуемые лимиты)
| Эндпоинт | Лимит |
|---|---|
POST /auth/login | 5 req/min per IP |
POST /auth/register | 3 req/min per IP |
POST /projects/{id}/responses | 20 req/hour per user |
POST /invitations | 50 req/day per user |
| Остальные | 100 req/min per user |