Грешки

Заявките в стил TMDB връщат грешки в тялото на TMDB: success false, числов status_code и status_message. Заявките в стил OMDb връщат Response False с низ Error. amodb ползва 8 кода на TMDB, от 7 за невалиден ключ до 25 за лимита на заявките и 36 за изтекъл план. Повтаряйте само 429, 500 и 504.

Обновено Отвори като Markdown

Тяло на грешка в стил TMDB

Всяка грешка от https://api.amodb.dev/3 има същата форма на JSON като в TMDB:

JSON
{
  "success": false,
  "status_code": 34,
  "status_message": "The resource you requested could not be found."
}

Кодове на грешки

HTTPstatus_codestatus_messageКакво да направите
4017Invalid API key: You must be granted a valid key.Проверете ключа и как го изпращате.
40110Suspended API key: Access to your account has been suspended, contact amodb.Пишете на support@amodb.dev.
40236Your plan has expired. Renew at https://amodb.dev/pricingПлатете нов период.
40434The resource you requested could not be found.Проверете id или пътя.
40537This method is not offered by amodb.Ползвайте ендпойнт за четене.
42925Your request count (N) is over the allowed limit of (L).Изчакайте секундите от Retry-After.
50011Internal error: Something went wrong, contact amodb.Опитайте отново след няколко секунди.
50424Your request to the backend server timed out. Try again.Опитайте отново след няколко секунди.

Тяло на грешка в стил OMDb

Ендпойнтът, съвместим с OMDb, запазва формата и формулировките на OMDb:

Заявка към OMDb с r=xml връща HTTP 400. Ползвайте r=json или изпуснете r.

JSON
{
  "Response": "False",
  "Error": "Movie not found!"
}
jspy
const res = await fetch("https://api.amodb.dev/3/movie/550", {
  headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` },
});
if (!res.ok) {
  const err = await res.json();
  if (res.status === 429) {
    // wait Retry-After seconds, then retry
  }
  throw new Error(`amodb ${res.status} code ${err.status_code}: ${err.status_message}`);
}
res = requests.get(url, headers=headers, timeout=10)
if not res.ok:
    err = res.json()
    raise RuntimeError(f"amodb {res.status_code} code {err['status_code']}: {err['status_message']}")

Случаи, които не са грешки

  • Непознат таг language не води до грешка. amodb връща английски за него.
  • Поле без данни е null или празен масив, както в TMDB.

Въпроси и отговори

Кои грешки трябва да повтаря клиентът ми?

Повторете 429 след секундите от Retry-After, а 500 или 504 с изчакване от няколко секунди. Не повтаряйте 401, 402, 404 или 405: същата заявка пак ще се провали.

Защо получавам 405 за ендпойнт на TMDB?

amodb не предлага методите за запис на TMDB за account, session, rating и list. Те връщат 405 със status_code 37. Всички ендпойнти за четене работят.