Пользователи и профили
Гостевые и постоянные сессии, регистрация, login, refresh и профиль.
Общий integration guide для Product-проектов Scanderm: только запросы клиентского приложения и основные операции каталога, импорта и магазинов.
Ключ проекта идентифицирует внешнюю интеграцию, пользовательский JWT — конкретную сессию или пользователя.
URL проекта и необходимые ключи предоставляются отдельно.
Для демо-сессии вызовите POST /auth/guest.
Добавьте Authorization: Bearer <access_token>.
# 1. Keep the key outside source control export URL="<URL>" export API_KEY="<API_KEY>" # 2. Create a guest session TOKENS=$(curl -sS -X POST "$URL/auth/guest" \ -H "X-API-Key: $API_KEY") ACCESS_TOKEN=$(echo "$TOKENS" | jq -r .access_token) # 3. Update the profile curl -sS -X PUT "$URL/me" \ -H "X-API-Key: $API_KEY" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{"preferences":{"locale":"ru"}}'
Документация охватывает клиентские сценарии Product-сервисов и рабочий контур управления ассортиментом.
Гостевые и постоянные сессии, регистрация, login, refresh и профиль.
Загрузка фото, face/skin-анализ, SSE-прогресс, история и результаты.
Лицо, волосы, подбор цвета волос и макияж — набор доступных модулей определяется проектом.
Персональная выдача товаров по результатам анализа и пользовательским фильтрам.
CRUD товаров, Excel/CSV-импорт, очередь модерации и загрузка изображений.
Магазины, ближайшая точка, цены, остатки и обновление stock-интеграции.
X-API-KeyОбязателен для всех бизнес-методов. В Swagger вставляется как обычное значение без префикса.
Authorization: Bearer JWTДополнительно требуется для пользовательских данных и анализа.
X-Internal-KeyСерверный ключ для CRUD каталога и очереди импорта. Никогда не передавайте его во frontend.
Полный пользовательский контур: гостевая сессия, анализ с прогрессом, рекомендации и сохраняемый результат. Для интеграции только «фото → JSON» используйте сокращённый прямой нейроанализ ниже.
Получите access_token и refresh_token. Зарегистрированный пользователь может войти через /auth/login.
POST /auth/guestОтправьте JPEG, PNG или WebP с Bearer JWT. Ответ сразу вернёт session_id, пока обработка продолжается в фоне.
POST /analysis/upload?module=faceПодключитесь к SSE по session_id. В браузерном EventSource JWT передаётся через query-параметр token.
GET /analysis/stream/{session_id}Как только в SSE готов снимок метрик, можно параллельно запросить товарную выдачу и передать пользовательские фильтры.
POST /recommendationsПосле завершения стрима сохраните метрики и рекомендации. В ответ придёт короткий id для постоянной страницы и QR.
POST /face-resultsПолучите сохранённый результат по id. При необходимости отдельно прогрейте PDF или запустите подробный LLM-разбор.
GET /face-results/{result_id}Запрос сразу возвращает session_id. Готовый результат появляется в истории пользователя.
curl -sS -X POST \ "$URL/analysis/upload?module=face" \ -H "X-API-Key: $API_KEY" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -F "file=@selfie.jpg;type=image/jpeg" # Response { "session_id": "8da5e5c8-...", "status": "processing" }
Клиентское приложение читает каталог, а изменение ассортимента выполняется только из доверенного server-side контура.
Для витрины и фильтров используйте постраничный список и карточку товара. Эти методы не изменяют ассортимент.
GET /products
GET /products/{product_id}
Проверенный JSON, CSV или Excel можно синхронизировать напрямую. Периодический забор удалённого фида настраивается как проектный адаптер: заранее согласуются формат, идентификатор товара, маппинг полей и частота.
POST /products/import
POST /products/import-csv
POST /products/import-excel
Если строки нужно проверить, обогатить или выборочно принять, загрузите файл в очередь и выполняйте commit только после одобрения.
POST /import-queue/upload-*
POST /import-queue/sessions/{id}/commit
Без guest/login, JWT, session_id и предварительной загрузки. REST ждёт полный результат, SSE отдаёт показатели по мере готовности.
curl -sS -X POST \ "$URL/neural/analyze" \ -H "X-API-Key: $API_KEY" \ -F "file=@selfie.jpg;type=image/jpeg" # One JSON response after completion { "session_id": "...", "status": "done", "results": { ... } }
curl -N -X POST \ "$URL/neural/analyze/stream" \ -H "X-API-Key: $API_KEY" \ -F "file=@selfie.jpg;type=image/jpeg" event: session data: {"session_id":"..."} event: progress data: {"task_id":"redness","status":"done"} event: result data: {"status":"done","results":{...}} event: done
Клиентские методы Product-сервисов, опциональные модули и операции каталога/импорта. Параметры и тела запросов доступны в Swagger.
Откройте Swagger, авторизуйтесь через ProjectApiKey и получите гостевой JWT.