Аутентификация
Каждый запрос к amodb содержит один ключ: 32 hex-символа в нижнем регистре. Передавайте его как api_key в запросе или заголовком Authorization: Bearer для вызовов в стиле TMDB и как apikey для вызовов в стиле OMDb. Изображениям ключ не нужен. Неверный ключ дает 401 со status_code 7, приостановленный ключ дает 401 со status_code 10.
Формат ключа
Ключ состоит из 32 hex-символов в нижнем регистре, например 0123456789abcdef0123456789abcdef. Он имеет ту же форму, что и ключ TMDB v3, поэтому поля и валидаторы, написанные для ключей TMDB, его принимают.
amodb хранит только хеш SHA-256 каждого ключа. Полный ключ показывается один раз, при создании. Если вы его потеряли, удалите его и создайте новый.
Вызовы в стиле TMDB
Передавайте ключ одним из двух способов. Оба работают на каждом эндпоинте под https:/.
| Способ | Пример |
|---|---|
| Параметр запроса | ?api_key=YOUR_KEY |
| Заголовок | Authorization: Bearer YOUR_ |
curl "https://api.amodb.dev/3/configuration" \
-H "Authorization: Bearer $AMODB_KEY"const res = await fetch("https://api.amodb.dev/3/configuration", {
headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` },
});import os
import requests
res = requests.get(
"https://api.amodb.dev/3/configuration",
headers={"Authorization": f"Bearer {os.environ['AMODB_KEY']}"},
timeout=10,
)<?php
$url = "https://api.amodb.dev/3/configuration?api_key=" . urlencode(getenv("AMODB_KEY"));
$config = json_decode(file_get_contents($url), true);req, _ := http.NewRequest("GET", "https://api.amodb.dev/3/configuration", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("AMODB_KEY"))
res, err := http.DefaultClient.Do(req)Вызовы в стиле OMDb
Эндпоинт, совместимый с OMDb, принимает ключ как apikey, так же как и сам OMDb. Это тот же ключ, который вы используете для вызовов в стиле TMDB.
curl "https://api.amodb.dev/omdb/?t=Inception&y=2010&apikey=$AMODB_KEY"Изображениям ключ не нужен
URL изображений на img.amodb.dev публичны. Не добавляйте к ним свой ключ: тег <img> раскроет его каждому посетителю.
Храните ключи на сервере
Ключ в браузерном бандле, мобильном приложении или публичном репозитории становится публичным. Любой, кто его скопирует, расходует ваш лимит запросов. Вызывайте amodb со своего сервера, из serverless-функции или на этапе сборки, а клиентам передавайте только данные.
- Храните ключ в переменной окружения или в менеджере секретов.
- Используйте один ключ на приложение или окружение, с названием вроде
productionилиstaging. - Удаляйте ключ в тот же момент, когда он утек. Вызовы с ним сразу перестают работать.
Ошибки
| HTTP | status_code | Значение |
|---|---|---|
| 401 | 7 | Ключ отсутствует, имеет неверный формат или неизвестен. |
| 401 | 10 | Ключ приостановлен. Напишите на support@amodb.dev. |
| 402 | 36 | Срок вашего тарифа истек. Оплатите новый период на странице цен. |
Все коды описаны на странице ошибки.