快速开始
发送 GET 请求即可获取一条随机一言。默认返回 JSON,默认最大长度为 30。
GET /api
所有查询参数均为可选。接口支持跨域请求;浏览器预检 OPTIONS /api 返回允许的跨域方法和请求头。
本服务只有一个一言接口,以下参数均用于 /api,不是分别独立的接口。
请求参数
| 参数 | 说明 | 示例 |
|---|---|---|
c | 分类代码,取值 a–l。不传或为空时从所有分类中筛选;只读取第一个 c,不支持多分类同时筛选。未知分类通常返回 404。 | c=a |
encode | 返回格式:json(默认)、text 或 js。其他值按 JSON 返回,不应用 callback。 | encode=text |
min_length | 最小长度,包含边界;不传时不限制下限。建议使用正整数。 | min_length=10 |
max_length | 最大长度,包含边界;不传时不限制上限。建议使用正整数,且不能小于最小长度。 | max_length=20 |
select | 仅用于 encode=js,指定页面上的 CSS 选择器;默认 .hitokoto。目标元素必须存在。 | select=%23hitokoto |
callback | 非空时将 json、text 或 js 结果包装为 JavaScript 函数调用;json 的参数是 JSON 字符串,而非对象。 | callback=show |
长度依据数据中的 length 字段。当前实现使用整数解析,可能截取数值前缀(例如 12abc 被解析为 12);请始终传入纯正整数。相同参数重复出现时只读取第一个值。
分类
通过 c 参数指定一个分类;点击分类代码可直接试用。不传 c 时从全部分类中筛选。
| 代码 | 分类 | 说明 |
|---|---|---|
a | 动画 | 动画类语录 |
b | 漫画 | 漫画类语录 |
c | 游戏 | 游戏类语录 |
d | 文学 | 主要收录现代文学,如小说、散文、戏剧 |
e | 原创 | 原创类语录 |
f | 网络 | 来自网络的语录 |
g | 其他 | 其他类语录 |
h | 影视 | 影视类语录 |
i | 诗词 | 主要收录中国古代文学,如诗、歌、词、赋、曲 |
j | 网易云 | 主要收录网易云音乐热评 |
k | 哲学 | 哲学类语录 |
l | 抖机灵 | 抖机灵类语录 |
分类名称和范围参考句子库的 categories.json。
返回格式与字段
JSON(默认)
成功时返回一个对象(字段值取决于语录数据,部分字段可能为 null):
| 字段 | 说明 |
|---|---|
id | 语录编号 |
hitokoto | 语录正文 |
type | 分类代码 |
from | 出处 |
from_who | 作者或来源人物,可能为 null |
length | 数据记录的语录长度 |
timestamp | 响应生成时的 Unix 时间戳,单位毫秒 |
纯文本与 JavaScript
encode=text 只返回语录正文。encode=js 返回一段脚本,执行时将正文写入 select 指定元素的 innerText。
使用 callback=show 时,响应形如 ;show("内容");;默认 JSON 格式传给回调的是序列化后的 JSON 字符串,需要自行解析。返回 JavaScript 的参数只应使用可信内容,不要拼入未经信任的输入。
状态码与错误
| 状态码 | 含义 |
|---|---|
200 | 请求成功;OPTIONS 预检也返回 200。 |
400 | 长度参数解析后不是正整数,或最大长度小于最小长度。 |
404 | 没有符合筛选条件的语录。 |
500 | 服务处理请求时发生异常。 |
错误以 JSON 返回,包含 code、message 和毫秒时间戳 timestamp,例如:
{"code":400,"message":"min_length 必须是正整数","timestamp":1730000000000}