学法减分题库
正常 NEW学法减分题库查询(交管 12123 复习题库),支持搜索/随机出题/答题校验。
学法减分题库查询(交管 12123 复习题库),支持搜索/随机出题/答题校验。
服务存活探测
服务存活探测。无需任何参数,用于检查题库服务是否可用,返回数据版本、服务器当前时间(UTC)、支持的题型列表,以及批量查询与随机抽取的单次条数上限。
?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | string | 是 | 您的API密钥,可在个人中心获取 |
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | integer | 状态码,200 表示成功 |
| msg | string | 返回消息 |
| data | object | 业务数据 |
| data.version | string | 数据版本 |
| data.time | string | 服务器当前时间(UTC,格式 Y-m-d H:i:s) |
| data.types | array | 类型列表 |
| data.types[] | string | 题型名称 |
| data.batch_limit | integer | 批量查询单次允许的最大输入条数 |
| data.random_limit | integer | 随机抽取单次可返回的最大条数 |
{"msg":"pong","code":200,"data":{"time":"2026-10-22 14:49:03","types":["单选题","多选题","判断题"],"version":"1.0","batch_limit":10,"random_limit":10}}
返回服务可用状态
返回服务可用状态(不返回数据量统计)。
?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | string | 是 | 您的API密钥,可在个人中心获取 |
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | integer | 状态码,200 表示成功 |
| msg | string | 返回消息 |
| data | object | 业务数据 |
| data.status | string | 服务可用状态 |
{"msg":"success","code":200,"data":{"status":"ok"}}
返回题型列表
返回题库支持的题型列表,可据此确定 query、search、list、random 的 type 过滤值。
?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | string | 是 | 您的API密钥,可在个人中心获取 |
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | integer | 状态码,200 表示成功 |
| msg | string | 返回消息 |
| data | object | 业务数据 |
| data.total | integer | 题型数量 |
| data.list | array | 数据列表 |
| data.list[] | object | 列表中的单条记录 |
| data.list[].type | string | 类型 |
{"msg":"success","code":200,"data":{"list":[{"type":"判断题"},{"type":"单选题"},{"type":"多选题"}],"total":3}}
返回题目可查询字段
返回题目可查询的业务字段清单,包含字段名(field)、中文标签(label)以及是否属于精简字段(brief)。可据此构造 fields 参数。
?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | string | 是 | 您的API密钥,可在个人中心获取 |
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | integer | 状态码,200 表示成功 |
| msg | string | 返回消息 |
| data | object | 业务数据 |
| data.total | integer | 字段数量 |
| data.list | array | 数据列表 |
| data.list[] | object | 列表中的单条记录 |
| data.list[].field | string | 字段名,可直接用于 fields 参数 |
| data.list[].label | string | 字段中文标签 |
| data.list[].brief | boolean | 是否为精简字段(true 表示 brief=true 时也会返回) |
{"msg":"success","code":200,"data":{"list":[{"brief":true,"field":"id","label":"ID"},{"brief":true,"field":"type","label":"题型"},{"brief":true,"field":"question","label":"题目内容"},{"brief":false,"field":"options","label":"选项"},{"brief":false,"field":"answer","label":"答案"},{"brief":false,"field":"images","label":"图片URL列表"}],"total":6}}
获取题目图片
按文件名获取题目图片。题目数据中的 images 数组元素可直接作为 f 参数,或直接放入 img 标签。返回统一 JSON 结构,图片内容以 Base64 放在 data.base64,并额外提供 data.data_uri 可直接作为图片地址使用。文件名非法返回 4001,文件不存在返回 4041。
?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | string | 是 | 您的API密钥,可在个人中心获取 |
| f | string | 否 | 图片文件名(如 1.jpg、100.png);与 filename 二选一,同时传时以 f 为准;文件不存在 → 4041 |
| filename | string | 否 | 图片文件名,与 f 等价;与 f 二选一 |
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | integer | 状态码,200 表示成功 |
| msg | string | 返回消息 |
| data | object | 图片数据(以 Base64 文本返回,不返回二进制流) |
| data.content_type | string | 图片 MIME 类型,如 image/jpeg、image/png |
| data.size | integer | 图片字节数(即解码 data.base64 后的长度) |
| data.base64 | string | Base64 编码的图片内容,解码后即为原始图片字节 |
| data.data_uri | string | 可直接用于 img 标签 src 的 Data URI,形如 data:image/jpeg;base64,... |
{"msg":"success","code":200,"data":{"size":79919,"base64":"/9j/4AAQSkZJRgABAQEA3ADcAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/2wBDAQICAgICAgUDAwUKBwYHCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgr/wAARCAFFAy0DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUF…","data_uri":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEA3ADcAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/2wBDAQICAgICAgUDAwUKBwYHCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgr/wAARCAFFAy0DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcIC…","content_type":"image/jpeg"}}
按题目内容查询
按题目内容精确查询。先用 keyword 与题干做精确匹配(data.mode=exact),无命中时自动降级为模糊匹配(data.mode=like)。适合已知完整题干时定位题目 ID。
?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | string | 是 | 您的API密钥,可在个人中心获取 |
| keyword | string | 是 | 查询关键词(必填,缺失返回 4001 缺少参数: keyword) |
| limit | integer | 否 | 每页条数,默认 10,最大 20;超出上限按 20 处理,传 0 或负数按 1 条处理 |
| offset | integer | 否 | 翻页偏移量,默认 0;传非数字或负数按 0 处理;偏移超出命中总数时返回空数组,code 仍为 0。响应中 data.offset 会回显实际生效的偏移量 |
| type | string | 否 | 按题型过滤,可选值见 types 接口 |
| brief | boolean | 否 | 是否精简返回 |
| fields | string | 否 | 指定返回字段,多个字段用空格或逗号分隔;可选值:id、type、question、options、answer、images |
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | integer | 状态码,200 表示成功 |
| msg | string | 返回消息 |
| data | object | 业务数据 |
| data.list | array | 数据列表 |
| data.list[] | object | 列表中的单条记录 |
| data.list[].id | integer | 记录唯一标识 |
| data.list[].type | string | 类型 |
| data.list[].question | string | 题目内容 |
| data.list[].options | object | 选项键值对(如 {"A":"...","B":"..."});判断题无选项时为 null |
| data.list[].answer | string | 答案 |
| data.list[].images | array | 图片 URL 列表;返回网关相对路径(如 /v1/api/xuefa/image?f=1.jpg),拼接站点域名即可访问 |
| data.limit | integer | 本次实际生效的每页条数(已按 1~20 裁剪) |
| data.offset | integer | 本次请求实际生效的翻页偏移量(非法值已归 0) |
| data.total | integer | 命中总条数(用于计算翻页) |
| data.mode | string | 匹配模式:exact=精确命中;like=精确未命中后降级为模糊匹配 |
| data.error | string | 服务暂不可用时的错误标识(如 db_unavailable),正常时不返回 |
| data.list[].options.A | string | 选项 A 内容 |
| data.list[].options.B | string | 选项 B 内容 |
| data.list[].options.C | string | 选项 C 内容 |
| data.list[].options.D | string | 选项 D 内容 |
{"msg":"success","code":200,"data":{"list":[{"id":762,"type":"判断题","answer":"错误","images":null,"options":null,"question":"雨天行车视线受阻,开启远光灯会提高能见度。"},{"id":1662,"type":"单选题","answer":"D","images":null,"options":{"A":"以正常速度行驶","B":"持续鸣喇叭示意其让道","C":"加速绕行","D":"提前鸣喇叭,并适当降低车速"},"question":"雨天行车,遇撑雨伞和穿雨衣的行人在公路上行走时,应怎样做?"},{"id":1762,"type":"判断题","answer":"正确","images":null,"options":null,"question":"在大雨天行车,为避免发生“水滑”而造成危险,要控制速度行驶。"}],"mode":"like","limit":10,"total":6,"offset":0}}
搜索题目
按关键词检索题目。关键词长度不少于 2 且不含标点时走全文索引(data.mode=fulltext,结果含 relevance 相关度);关键词过短或含标点时降级为模糊匹配(data.mode=like)。适合按知识点批量找题。
?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | string | 是 | 您的API密钥,可在个人中心获取 |
| keyword | string | 是 | 检索关键词(必填,缺失返回 4001 缺少参数: keyword;仅支持 keyword,不支持 q 别名) |
| limit | integer | 否 | 每页条数,默认 20,最大 20;超出上限按 20 处理,传 0 或负数按 1 条处理,传非数字按默认 20 处理 |
| offset | integer | 否 | 翻页偏移量,默认 0(从第 1 条开始);传非数字按 0 处理,传负数按 0 处理。与 limit 配合可遍历全部结果:第 N 页传 offset=(N-1)×limit;偏移超出命中总数时返回空数组,code 仍为 0。响应中 data.offset 会回显实际生效的偏移量 |
| type | string | 否 | 按题型过滤,可选值见 types 接口(如 单选题、判断题、多选题) |
| brief | boolean | 否 | 是否精简返回(true 时省略部分字段) |
| fields | string | 否 | 指定返回字段,多个字段用空格或逗号分隔;可选值:id、type、question、options、answer、images;不传返回默认字段集合 |
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | integer | 状态码,200 表示成功 |
| msg | string | 返回消息 |
| data | object | 业务数据 |
| data.list | array | 数据列表 |
| data.list[] | object | 列表中的单条记录 |
| data.list[].id | integer | 记录唯一标识 |
| data.list[].type | string | 类型 |
| data.list[].question | string | 题目内容 |
| data.list[].options | object | 选项键值对(如 {"A":"...","B":"..."});判断题无选项时为 null |
| data.list[].answer | string | 答案 |
| data.list[].images | array | 图片 URL 列表;返回网关相对路径(如 /v1/api/xuefa/image?f=1.jpg),拼接站点域名即可访问 |
| data.list[].relevance | number | 相关度得分(仅全文检索模式返回,数值越大越相关;同一关键词下大量结果可能同分并列) |
| data.limit | integer | 本次请求实际生效的每页条数(已按 1~20 裁剪) |
| data.offset | integer | 本次请求实际生效的翻页偏移量(非法值已归 0) |
| data.total | integer | 命中总条数(用于计算翻页) |
| data.mode | string | 匹配模式:fulltext=全文索引(结果含 relevance);like=关键词过短或含标点时降级为模糊匹配 |
| data.error | string | 服务暂不可用时的错误标识(如 db_unavailable),正常时不返回 |
| data.list[].options.A | string | 选项 A 内容 |
| data.list[].options.B | string | 选项 B 内容 |
| data.list[].options.C | string | 选项 C 内容 |
| data.list[].options.D | string | 选项 D 内容 |
{"msg":"success","code":200,"data":{"list":[{"id":29,"type":"判断题","answer":"正确","images":null,"options":null,"question":"佟某驾驶一辆大客车(乘载54人,核载55人)以45公里的\n时速行经泥泞路段时,机动车侧滑驶出路外坠入深沟,导致14人死亡40人受伤。佟某的主要违法行为是超速行驶。","relevance":7.294968605041504},{"id":139,"type":"判断题","answer":"正确","images":null,"options":null,"question":"佟某驾驶一辆大客车(乘载54人,核载55人)以45公里的时速行径泥泞路段时,机动车侧滑驶出路外坠入深沟,导致14人死亡、40人受伤。佟某的主要违法行为是超速行驶。","relevance":7.294968605041504},{"id":2627,"type":"多选题","answer":"ABCD","images":null,"options":{"A":"反应距离延长","B":"视野变窄","C":"加重事故后果","D":"制动距离延长"},"question":"驾驶汽车超速行驶有哪些危害?","relevance":7.294968605041504}],"mode":"fulltext","limit":20,"total":8,"offset":0}}
分页返回题目列表
分页返回题库全部题目,按 ID 升序。这是唯一支持真分页(page / page_size)的端点,可配合 data.total 与 data.pages 遍历全库。
?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | string | 是 | 您的API密钥,可在个人中心获取 |
| page | integer | 否 | 页码,默认 1;传 0 或负数按 1 处理 |
| page_size | integer | 否 | 每页条数,默认 20,最大 20;超出上限按 20 处理,传 0 或负数按 1 处理。本接口支持真分页,不支持 limit 参数 |
| type | string | 否 | 按题型过滤,可选值见 types 接口(单选题、多选题、判断题);不传返回全部题型 |
| brief | boolean | 否 | 是否精简返回,true 时仅返回 id、type、question 三个字段 |
| fields | string | 否 | 指定返回字段,多个字段用空格或逗号分隔;可选值:id、type、question、options、answer、images;传了 fields 时忽略 brief |
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | integer | 状态码,200 表示成功 |
| msg | string | 返回消息 |
| data | object | 业务数据 |
| data.list | array | 数据列表 |
| data.list[] | object | 列表中的单条记录 |
| data.list[].id | integer | 记录唯一标识 |
| data.list[].type | string | 类型 |
| data.list[].question | string | 题目内容 |
| data.list[].options | object | 选项键值对(如 {"A":"...","B":"..."});判断题无选项时为 null |
| data.list[].options.A | string | 选项 A 内容 |
| data.list[].options.B | string | 选项 B 内容 |
| data.list[].options.C | string | 选项 C 内容 |
| data.list[].options.D | string | 选项 D 内容 |
| data.list[].answer | string | 答案 |
| data.list[].images | array | 图片 URL 列表;返回网关相对路径(如 /v1/api/xuefa/image?f=1.jpg),拼接站点域名即可访问 |
| data.total | integer | 当前筛选条件下的匹配题数(分页用) |
| data.page | integer | 当前页码 |
| data.page_size | integer | 每页条数 |
| data.pages | integer | 总页数 = ceil(total / page_size) |
| data.error | string | 服务暂不可用时的错误标识(如 db_unavailable),正常时不返回 |
{"msg":"success","code":200,"data":{"list":[{"id":1,"type":"单选题","answer":"C","images":null,"options":{"A":"以正常速度行驶","B":"加速从左侧绕行","C":"提前减速鸣喇叭","D":"临近鸣喇叭示意"},"question":"驾驶机动车在雨天遇到撑雨伞和穿雨衣的行人在路边行走怎样礼让?"},{"id":2,"type":"多选题","answer":"ABC","images":null,"options":{"A":"相对方向行驶的右转弯机动车让左转弯的车辆先行","B":"没有交通标志、标线控制时,在进入路口前停车瞭望,让右方道路的来车先行","C":"转弯的机动车让直行的车辆、行人先行","D":"相对方向行驶的左转弯机动车让右转弯的车辆先行"},"question":"驾驶机动车通过未设置交通信号灯的交叉路口时,下列说法正确的是什么?"},{"id":3,"type":"多选题","answer":"ABCD","images":null,"options":{"A":"由公安机关交通管理部门扣留机动车至违法状态消除","B":"超过额定乘员未达20%的,处200元以上500元以下罚款","C":"运输单位的车辆有上述情形,经处罚不改的,对直接负责的主管人员处2000元以上5000元以下罚款","D":"超过额定乘员20%的,处500元以上2000元以下罚款"},"question":"公路客运车辆载客超过额定乘员的,将受到何种处罚?"}],"page":1,"pages":208,"total":4147,"page_size":20}}
按 ID 获取题目详情
按题目 ID 获取单条题目的完整信息,包含题干、选项、答案与图片列表。ID 不存在时返回 4041(题目不存在)。
?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | string | 是 | 您的API密钥,可在个人中心获取 |
| id | integer | 是 | 题目 ID(必填;不存在的 ID 返回 4041 题目不存在) |
| brief | boolean | 否 | 是否精简返回,true 时仅返回 id、type、question 三个字段 |
| fields | string | 否 | 指定返回字段,多个字段用空格或逗号分隔;可选值:id、type、question、options、answer、images;传了 fields 时忽略 brief |
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | integer | 状态码,200 表示成功 |
| msg | string | 返回消息 |
| data | object | 业务数据 |
| data.id | integer | 唯一标识 |
| data.type | string | 类型 |
| data.question | string | 题目内容 |
| data.options | object | 选项键值对(如 {"A":"...","B":"..."});判断题无选项时为 null |
| data.options.A | string | 选项 A 内容 |
| data.options.B | string | 选项 B 内容 |
| data.options.C | string | 选项 C 内容 |
| data.options.D | string | 选项 D 内容 |
| data.answer | string | 答案 |
| data.images | array | 图片 URL 列表;返回网关相对路径(如 /v1/api/xuefa/image?f=1.jpg),拼接站点域名即可访问 |
{"msg":"success","code":200,"data":{"id":1,"type":"单选题","answer":"C","images":null,"options":{"A":"以正常速度行驶","B":"加速从左侧绕行","C":"提前减速鸣喇叭","D":"临近鸣喇叭示意"},"question":"驾驶机动车在雨天遇到撑雨伞和穿雨衣的行人在路边行走怎样礼让?"}}
批量查询题目
批量查询题目(POST,JSON Body)。单次最多提交 10 个查询值,超出直接报错(4002);未命中的条目以 {query, error:"not_found"} 的形式出现在 data.list 中。key 支持 id(默认)或 type。
?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| items | array | 是 | 题目 ID 数组(最多 10 条,超出直接报错 4002);默认按 id 校验,元素须为数字 ID;如需按题目类型筛选可加参数 key=type |
| key | string | 否 | items 校验依据,可选 id(默认)或 type |
| brief | boolean | 否 | 是否精简返回,true 时仅返回 id、type、question 三个字段 |
| fields | string | 否 | 指定返回字段,多个字段用空格或逗号分隔;可选值:id、type、question、options、answer、images;传了 fields 时忽略 brief |
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | integer | 状态码,200 表示成功 |
| msg | string | 返回消息 |
| data | object | 业务数据 |
| data.total | integer | 本次提交的原始查询值条数 |
| data.returned | integer | 实际返回的条目数(去重、过滤非法值后) |
| data.ok | integer | 命中的题目数 |
| data.not_found | integer | 未命中的查询值数 |
| data.truncated | boolean | 保留字段,当前恒为 false(超过 10 条时直接返回 4002 错误,不会截断) |
| data.max_limit | integer | 单次最多返回条数(10) |
| data.list | array | 数据列表 |
| data.list[] | object | 列表中的单条记录 |
| data.list[].id | integer | 记录唯一标识 |
| data.list[].type | string | 类型 |
| data.list[].question | string | 题目内容 |
| data.list[].options | object | 选项键值对(如 {"A":"...","B":"..."});判断题无选项时为 null |
| data.list[].options.A | string | 选项 A 内容 |
| data.list[].options.B | string | 选项 B 内容 |
| data.list[].options.C | string | 选项 C 内容 |
| data.list[].options.D | string | 选项 D 内容 |
| data.list[].answer | string | 答案 |
| data.list[].images | array | 图片 URL 列表;返回网关相对路径(如 /v1/api/xuefa/image?f=1.jpg),拼接站点域名即可访问 |
| data.list[].query | integer | 未命中时回显的原始查询值(仅 not_found 条目出现) |
| data.list[].error | string | 未命中标记,固定为 not_found(仅未命中条目出现) |
{"msg":"success","code":200,"data":{"ok":3,"list":[{"id":1,"type":"单选题","answer":"C","images":null,"options":{"A":"以正常速度行驶","B":"加速从左侧绕行","C":"提前减速鸣喇叭","D":"临近鸣喇叭示意"},"question":"驾驶机动车在雨天遇到撑雨伞和穿雨衣的行人在路边行走怎样礼让?"},{"id":2,"type":"多选题","answer":"ABC","images":null,"options":{"A":"相对方向行驶的右转弯机动车让左转弯的车辆先行","B":"没有交通标志、标线控制时,在进入路口前停车瞭望,让右方道路的来车先行","C":"转弯的机动车让直行的车辆、行人先行","D":"相对方向行驶的左转弯机动车让右转弯的车辆先行"},"question":"驾驶机动车通过未设置交通信号灯的交叉路口时,下列说法正确的是什么?"},{"id":3,"type":"多选题","answer":"ABCD","images":null,"options":{"A":"由公安机关交通管理部门扣留机动车至违法状态消除","B":"超过额定乘员未达20%的,处200元以上500元以下罚款","C":"运输单位的车辆有上述情形,经处罚不改的,对直接负责的主管人员处2000元以上5000元以下罚款","D":"超过额定乘员20%的,处500元以上2000元以下罚款"},"question":"公路客运车辆载客超过额定乘员的,将受到何种处罚?"}],"total":3,"returned":3,"max_limit":10,"not_found":0,"truncated":false}}
随机抽取题目
随机抽取指定数量的题目,可用于模拟练习或考试。默认返回答案,传 answer=false 只返回题干。每次请求结果随机,不做缓存。
?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | string | 是 | 您的API密钥,可在个人中心获取 |
| count | integer | 否 | 返回条数,默认 10,最大 10;超出上限按 10 处理 |
| type | string | 否 | 限定题型,可选值见 types 接口(单选题、多选题、判断题);不传则全库随机 |
| answer | boolean | 否 | 是否返回答案,默认 true;传 false(或 0/off/no)时返回结果不含 answer 字段 |
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | integer | 状态码,200 表示成功 |
| msg | string | 返回消息 |
| data | object | 业务数据 |
| data.list | array | 数据列表 |
| data.list[] | object | 列表中的单条记录 |
| data.list[].id | integer | 记录唯一标识 |
| data.list[].type | string | 类型 |
| data.list[].question | string | 题目内容 |
| data.list[].options | object | 选项键值对(如 {"A":"...","B":"..."});判断题无选项时为 null |
| data.list[].answer | string | 正确答案;请求 answer=false 时不返回该字段 |
| data.list[].images | array | 图片 URL 列表;返回网关相对路径(如 /v1/api/xuefa/image?f=1.jpg),拼接站点域名即可访问 |
| data.count | integer | 本次实际返回的题目条数 |
| data.error | string | 服务暂不可用时的错误标识(如 db_unavailable),正常时不返回 |
| data.list[].options.A | string | 选项 A 内容 |
| data.list[].options.B | string | 选项 B 内容 |
| data.list[].options.C | string | 选项 C 内容 |
| data.list[].options.D | string | 选项 D 内容 |
| data.list[].images[] | string | 图片 URL |
{"msg":"success","code":200,"data":{"list":[{"id":29,"type":"判断题","answer":"正确","images":null,"options":null,"question":"佟某驾驶一辆大客车(乘载54人,核载55人)以45公里的\n时速行经泥泞路段时,机动车侧滑驶出路外坠入深沟,导致14人死亡40人受伤。佟某的主要违法行为是超速行驶。"},{"id":786,"type":"单选题","answer":"C","images":null,"options":{"A":"超车完毕驶回原车道时可不开转向灯","B":"驶离停车地点时不必开启转向灯","C":"靠边停车时应提前开启右转向灯","D":"准备变更车道时可以不开转向灯"},"question":"关于驾驶机动车时转向灯的使用,以下说法正确的是什么?"},{"id":920,"type":"单选题","answer":"A","images":["/v1/api/xuefa/image?f=297.jpg"],"options":{"A":"路口警示","B":"禁止右转","C":"准许直行","D":"加速通过"},"question":"驾驶机动车在路口遇到这种信号灯表示什么意思?"}],"count":10}}
校验用户答案
校验用户提交的答案是否正确(POST,JSON Body)。单选题填选项字母;多选题按字母集合比较(顺序无关);判断题兼容 正确/错误/对/错/是/否/Y/N/T/F/TRUE/FALSE/√/×/1/0 等写法。题目不存在返回 4041,答案超过 20 字符返回 4002。
?key=您的API密钥 即可直接调用;也可改用 Authorization: Bearer 或 X-App-Key 请求头传递,避免密钥出现在访问日志中。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | string | 是 | 您的API密钥,可在个人中心获取 |
| id | integer | 是 | 题目 ID |
| answer | string | 是 | 用户答案 |
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | integer | 状态码,200 表示成功 |
| msg | string | 返回消息 |
| data | object | 业务数据 |
| data.correct | boolean | 用户答案是否正确 |
| data.correct_answer | string | 标准答案(单选题为选项字母,多选题为字母串,判断题为 正确/错误) |
| data.question | string | 题目内容 |
| data.type | string | 类型 |
| data.images | array | 图片 URL 数组,元素形如 /api/xuefa/image?f=1.jpg;无图片时为 null |
{"msg":"success","code":200,"data":{"type":"单选题","images":null,"correct":false,"question":"驾驶机动车在雨天遇到撑雨伞和穿雨衣的行人在路边行走怎样礼让?","correct_answer":"C"}}
学法减分题库查询(交管 12123 复习题库),支持搜索/随机出题/答题校验。
| 方案名称 | 调用次数 | 价格 | 折算单价 | 比按次付费节省 | 有效期 |
|---|---|---|---|---|---|
| 100次调用包 | 100 次 | ¥0.2 | ¥0.0020/次 | - | 365 天 |
| 500次调用包 | 500 次 | ¥0.95 | ¥0.0019/次 | 省5% | 365 天 |
| 1000次调用包 | 1000 次 | ¥1.8 | ¥0.0018/次 | 省10% | 365 天 |
| 5000次调用包 | 5000 次 | ¥8.5 | ¥0.0017/次 | 省15% | 365 天 |
| 10000次调用包 | 10000 次 | ¥16 | ¥0.0016/次 | 省20% | 365 天 |
| 等级 | 每月免费次数 | 本接口月免费上限 | 折扣 | VIP 折后单价 |
|---|---|---|---|---|
| 免费版 | 按接口配置 | — | - | ¥0.002/次 |
| 个人版 | 5000 次 | 5000 次 | 10% | ¥0.0018/次 |
| 专业版 | 30000 次 | 30000 次 | 20% | ¥0.0016/次 |
| 企业版推荐 | 200000 次 | 200000 次 | 30% | ¥0.0014/次 |
| 错误码 | 说明 | 解决方案 |
|---|---|---|
| 200 | 请求成功 | - |
| 400000 | 请求参数错误 | 检查参数名、格式与取值 |
| 401000 | 认证失败 | 检查 Authorization: Bearer 密钥是否正确、是否过期 |
| 402000 | 账户余额不足 | 充值后重试 |
| 403000 | 无访问权限 | 确认密钥权限、接口范围与 IP 白名单是否满足要求 |
| 404000 | 接口或端点不存在 | 检查 API 与端点的请求路径 |
| 409000 | 请求冲突 | 请稍后重试 |
| 422000 | 参数校验失败 | 检查参数格式与取值 |
| 429000 | 请求频率或额度超限 | 降低调用频率,或升级套餐提升额度 |
| 500000 | 服务器内部错误 | 携带响应中的 request_id 联系技术支持 |
| 502000 | 服务暂时不可用 | 稍后重试 |
| 503000 | 服务暂时不可用 | 稍后重试 |
| 504000 | 请求超时 | 稍后重试 |