Перейти к основному содержимому

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Бизнес-правило нарушено
429Too Many Requests (rate limit)
500Внутренняя ошибка сервера

Rate Limiting (рекомендуемые лимиты)

ЭндпоинтЛимит
POST /auth/login5 req/min per IP
POST /auth/register3 req/min per IP
POST /projects/{id}/responses20 req/hour per user
POST /invitations50 req/day per user
Остальные100 req/min per user