最小可运行示例:一言经典语录 API 接口参数与返回字段详解
2026/7/28 7:15:23 网站建设 项目流程

适用场景

在日常开发中,常常需要为产品增加一条随机名言、经典台词或诗词,用于启动页、控制台欢迎语、每日一句等场景。「一言·经典语录」API 正是为此设计的轻量级接口:传入可选的条件(分类、字数范围),即可从超过 370 条经过人工整理的语录库中随机获取一条,结果包含原文、出处、作者和分类标签。

典型的集成场景包括:

  • 终端或内部工具的每日一言模块
  • 博客侧栏的随机句子展示
  • 桌面小工具的励志语录刷新
  • 游戏加载画面的台词切换

接口能力边界

  • 请求方法:GET
  • 接口地址https://v1.apizero.cn/api/hitokoto
  • QPS 限制:20 次/秒,超限请求会返回429 Too Many Requests
  • 语录池规模:当前约 370 条,覆盖 12 个分类(动漫/漫画/游戏/文学/影视/诗词/哲学/网络/其他等)
  • 筛选能力:支持按分类单字母(a~l)和字符长度范围(min_length/max_length)筛选,不传参数则全类别随机

请求参数与鉴权

Query 参数

参数名必填类型说明示例值
cstring分类标识,单字母 a-l,不传则全类别随机。各字母含义:a-动画 / b-漫画 / c-游戏 / d-文学 / e-原创 / f-来自网络 / g-其他 / h-影视 / i-诗词 / j-网易云 / k-哲学 / l-抖机灵i(诗词)
min_lengthnumber返回语录的最小字符数(包含标点)8
max_lengthnumber返回语录的最大字符数20

同时指定min_lengthmax_length时,min_length必须 ≤max_length,否则服务器会返回400 Bad Request

鉴权方式

接口通过 HTTP 请求头X-API-Key传递密钥。你需要先在 APIZero 平台上获取一个有效的 API Key,然后将其赋值给环境变量APIZERO_API_KEY,或者在代码中直接替换字符串(不推荐硬编码)。

请求头示例:

X-API-Key: your_api_key_here

curl 最小可运行示例

以下是一条完整的 GET 请求,从诗词分类(c=i)中随机返回一条字数在 8 到 20 之间的语录:

#!/bin/bash # 替换为你的真实 API Key export APIZERO_API_KEY="your_real_api_key_here" curl -sS \ -X GET \ -H "X-API-Key: $APIZERO_API_KEY" \ "https://v1.apizero.cn/api/hitokoto?c=i&min_length=8&max_length=20"

如果希望什么都不筛选,直接全类别随机,可以省略cmin_lengthmax_length

curl -sS \ -X GET \ -H "X-API-Key: $APIZERO_API_KEY" \ "https://v1.apizero.cn/api/hitokoto"

说明

  • -sS分别表示静默模式(不显示进度)和错误时显示错误信息。
  • 若未传入X-API-Key,服务器会返回401 Unauthorized

返回值解读

成功响应(HTTP 200)的Content-Typeapplication/json,返回体是一个 JSON 对象,结构如下:

{ "code": 0, "msg": "成功", "data": { "from": "滕王阁序", "from_who": "王勃", "hitokoto": "落霞与孤鹜齐飞,秋水共长天一色。", "id": 1234, "length": 16, "total_pool": 370, "type": "i", "type_name": "诗词" } }

字段说明

字段类型说明
codenumber业务状态码,0 表示成功,非 0 表示失败
msgstring业务描述信息
dataobject核心数据对象,包含以下子字段
data.hitokotostring随机获取的语录原文(若通过min_length/max_length筛选且无匹配,则此字段可能为空字符串)
data.fromstring语录出处(作品名/书籍/影视名等)
data.from_whostring作者/发言人
data.idnumber该条语录在数据库中的唯一 ID
data.lengthnumber语录的字符数(汉字+标点)
data.total_poolnumber当前筛选条件下可选的语录总数(用于计算随机范围)
data.typestring分类单字母
data.type_namestring分类中文名称

code不为 0 时,msg会给出错误原因(如“API Key 无效”“分类参数不合法”等),data可能为null或空对象。

常见错误与排查

HTTP 状态码可能原因排查步骤
401缺少X-API-Key或密钥无效确认环境变量已导出且值正确;可以在请求头后加-v参数查看实际发送的 Header
400参数格式错误(如min_length传了字符串、字母分类不在 a-l 范围内)检查 Query 参数类型和取值范围
429超过 QPS 20/s 的速率限制增加请求间隔或使用本地缓存
5xx服务端临时异常重试,若持续出现请联系平台支持

一个快速验证 API Key 是否有效的方法:

curl -sS -o /dev/null -w "%{http_code}" \ -X GET \ -H "X-API-Key: $APIZERO_API_KEY" \ "https://v1.apizero.cn/api/hitokoto"

返回200表示 Key 有效,401则表示密钥错误。

工程化注意事项

  1. API Key 安全管理:切勿将密钥直接硬编码在源代码中。推荐使用环境变量或密钥管理服务(如 Vault、Secrets Manager),在生产环境中通过 CI/CD 注入。
  2. 请求重试与退避:对于偶尔的 5xx 或网络抖动,可实现指数退避重试(如间隔 1s、2s、4s 最多 3 次)。注意不要对 4xx 错误盲目重试。
  3. 本地缓存策略:对于非实时性场景(如每日一句),可在服务端缓存一条结果,每 24 小时刷新一次,减少对 API 的调用频次,避免被限流。
  4. 参数校验:在发送请求前,对min_lengthmax_length做本地校验(正整数且min_length ≤ max_length),提前拦截无效请求。
  5. 超时设置:根据网络环境设置合理的超时时间(如 5 秒),避免请求卡死。使用curl --connect-timeout 5 --max-time 10或在 HTTP 库中设置相应选项。
  6. URL 编码:如果分类字母或长度参数从用户输入获取,务必对 Query 参数进行 URL 编码,避免特殊字符破坏请求格式。

参考文档

  • 一言 · 经典语录 API 官方文档:https://apizero.cn/aidocs/hitokoto
  • 原始 Markdown 文档:https://apizero.cn/aidocs/hitokoto/raw.md

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询