认证

每个 amodb 请求带一个 32 位小写十六进制密钥。TMDB 风格用 api_key 或 Bearer 请求头,OMDb 风格用 apikey。图片无需密钥。错误密钥返回 401 和 status_code 7,被暂停则为 10。

更新于 以 Markdown 查看

密钥格式

密钥是 32 位小写十六进制字符,例如 0123456789abcdef0123456789abcdef。它与 TMDB v3 密钥的形式相同,所以为 TMDB 密钥构建的输入框和校验器都能接受它。

amodb 只存储每个密钥的 SHA-256 哈希。完整密钥只在创建时显示一次。如果丢失,请删除它并创建新的。

TMDB 风格的调用

用两种方式之一发送密钥。两种方式在 https://api.amodb.dev/3 下的每个接口都有效。

方式示例
查询参数?api_key=YOUR_KEY
请求头Authorization: Bearer YOUR_KEY
bashjspyphpgo
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 的接口与 OMDb 一样,用 apikey 接收密钥。它与你用于 TMDB 风格调用的是同一个密钥。

curl
curl "https://api.amodb.dev/omdb/?t=Inception&y=2010&apikey=$AMODB_KEY"

图片不需要密钥

img.amodb.dev 上的图片 URL 是公开的。不要把密钥加到图片 URL 上:<img> 标签会把密钥暴露给每一位访客。

把密钥留在服务器上

浏览器打包文件、移动应用或公开仓库中的密钥就是公开的。任何复制它的人都会消耗你的请求速率。请从你的服务器、无服务器函数或构建步骤中调用 amodb,只把数据传给客户端。

  • 把密钥存放在环境变量或密钥管理服务中。
  • 每个应用或环境使用一个密钥,并加上 production 或 staging 这样的标签。
  • 密钥一旦泄露,立即删除。使用它的调用会马上失败。

错误

HTTPstatus_code含义
4017密钥缺失、格式错误或未知。
40110密钥已被暂停。请写信至 support@amodb.dev。
40236你的套餐已过期。请在定价页支付新的周期。

全部错误码见错误。

常见问题

Bearer 请求头比查询中的 api_key 更安全吗?

是的,稍微安全一些。查询字符串出现在服务器日志和浏览器历史中的频率比请求头更高。两者通过同一道检查,所以只要客户端允许,就使用请求头。

我能创建多少个密钥?

每个账户最多 10 个有效密钥。它们共用你套餐的请求速率,所以再加一个密钥不会增加容量。

更换套餐时,我的密钥会怎样?

你不需要做任何事。付款后一分钟内,每个有效密钥都会采用新的速率。