Аутентификация
Все запросы к /api/* требуют API-ключ в заголовке:
http
Authorization: Bearer ВАШ_JWTФормат ключа
API-ключ — это обычный JWT-токен (header.payload.signature), без префиксов:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjbGllbnQifQ.signatureИспользуйте токен целиком, как выдан при создании.
Способы передачи ключа в SDK
Глобальный конфиг
ts
import { configureZhkhSdk } from 'optimatica-meters'
configureZhkhSdk({
apiKey: 'eyJhbGci...',
})После этого ключ подставляется во все вызовы analyzeMeterPhoto и в UI-компоненты (если не переопределён пропсом). Эндпоинт API зашит в SDK на этапе сборки — настраивать URL не нужно.
На каждый запрос
ts
await analyzeMeterPhoto(file, {
apiKey: 'eyJhbGci...',
})В UI-компонентах
vue
<MeterPhotoAnalyzer api-key="eyJhbGci..." />Если ключ не задан глобально и не передан пропсом, компонент показывает поле ввода (showApiKeyInput по умолчанию true в этом случае).
Ошибки авторизации
| HTTP | Тело | Причина |
|---|---|---|
| 401 | { "error": "Unauthorized" } | Нет заголовка |
| 401 | { "error": "Invalid or revoked API key" } | Неверный или отозванный ключ |
| 402 | { "error": "Payment required", ... } | Исчерпана квота |
| 403 | { "error": "Client blocked" } | Аккаунт заблокирован |
При ошибке SDK выбрасывает ZhkhApiError с полями status и body.