学法减分题库 API 接口测评:基于交管 12123 的驾考刷题服务
一、前言
对于驾考科目一、科目四的学员来说,刷题是必经之路。而对于开发者而言,如果要自建一个“学法减分”刷题小程序、App 或网页,最头疼的往往不是界面设计,而是题库数据源——题目内容、答案、选项、题型分类、图片资源…… 这些数据既庞大又需要持续更新。
最近我体验了数鱼 API 市场上的 “学法减分题库” 接口(https://www.shujuyu.cn/api/detail/100 ),该接口基于交管 12123 复习题库,支持搜索、随机出题、答题校验等核心功能,数据更新标注为“实时”。本文将从接口设计、功能覆盖、数据质量、代码集成、优缺点及使用建议等维度进行详细测评。
二、接口基本信息
项目 说明 接口名称 学法减分题库 数据来源 交管 12123 复习题库 所属分类 教育学习 基础地址 http://www.shujuyu.cn/v1/api/xuefa/ 协议 HTTP 数据格式 JSON 版本 v1.0.0 数据更新 实时 日调用量 1345 次 计费方式 按次计费 单价 ¥0.002 / 次(次数包更优惠,低至 ¥0.0016 / 次)
计费方案:
- 100 次调用包:¥0.002 / 次
- 500 次调用包:¥0.0019 / 次(省 5%)
- 1000 次调用包:¥0.0018 / 次(省 10%)
- 5000 次调用包(推荐):¥0.0017 / 次(省 15%)
- 10000 次调用包(热门):¥0.0016 / 次(省 20%)
三、认证方式
接口支持三种 API Key 传递方式,生产环境建议优先使用请求头方式,避免密钥出现在访问日志中:
- URL 查询参数 :
?key=YOUR_API_KEY - Authorization 请求头 :
Authorization: Bearer YOUR_API_KEY - X-App-Key 请求头 :
X-App-Key: YOUR_API_KEY
四、核心子接口详解
该 API 包含 12 个子接口,覆盖了题库查询、刷题、图片资源、答题校验的完整链路。
1. 健康检查(GET /v1/api/xuefa/ping)
服务存活探测,用于验证接口可用性。
请求示例:
Bash
1
curl "http://www.shujuyu.cn/v1/api/xuefa/ping?key=YOUR_API_KEY"
返回示例:
JSON
1 2 3 4 5 6 7 8 9
{ "msg": "success", "code": 0, "data": { "time": "2026-08-01 12:00:00", "service": "xuefa-api", "version": "1.0" } }
2. 数据统计(GET /v1/api/xuefa/stats)
返回题库总量统计,可用于了解当前题库规模和分布。
返回示例:
JSON
1 2 3 4 5 6 7 8 9 10 11 12 13 14
{ "msg": "success", "code": 0, "data": { "true_false": 2173, "type_count": 3, "with_images": 1255, "single_choice": 1743, "total_records": 4173, "multiple_choice": 257, "fulltext_columns": ["question"], "fulltext_enabled": true } }
从返回数据可见,当前题库共 4173 条记录 ,包含:
- 单选题:1743 条
- 判断题:2173 条
- 多选题:257 条
- 带图片题目:1255 条
- 支持全文搜索:是(字段为
question)
3. 题型列表(GET /v1/api/xuefa/types)
返回各题型及其数量,适合前端构建题型筛选器。
返回示例:
JSON
1 2 3 4 5 6 7 8 9 10 11 12
{ "msg": "success", "code": 0, "data": { "list": [ { "cnt": 2173, "type": "判断题" }, { "cnt": 1743, "type": "单选题" }, { "cnt": 257, "type": "多选题" } ], "total": 3 } }
4. 可查询字段列表(GET /v1/api/xuefa/fields)
返回题目可查询的字段及其标签,区分了简略字段(brief: true )和详情字段(brief: false )。
返回示例:
JSON
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
{ "msg": "success", "code": 0, "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 } }
这意味着:
- 列表页只需拉取
id、type、question等简略字段,减少流量 - 详情页再按需拉取
options、answer、images等完整字段
5. 题目图片(GET /v1/api/xuefa/image)
获取题目关联的图片资源,支持通过文件名f 参数查询特定图片。
6. 精确查询(GET)
根据特定条件精确匹配题目。
7. 全文搜索(GET)
在题目内容中进行全文检索,适合实现“搜题”功能。
8. 分页列表(GET)
分页获取题目列表,适合构建刷题列表或错题本。
9. 题目详情(GET)
获取单道题目的完整信息,包括选项、答案、图片等。
10. 批量查询(POST)
批量获取多道题目,适合一次性加载练习卷。
11. 随机出题(GET)
随机抽取一道题目,适合“每日一题”或随机练习场景。
12. 答题校验(POST)
提交用户答案,返回是否正确及解析,是刷题闭环的核心接口。
五、多语言代码集成示例
官方文档提供了丰富的多语言调用示例,覆盖主流开发语言,集成门槛低。
JavaScript (Fetch)
JavaScript
1 2 3 4 5
const params = {}; const query = new URLSearchParams(params).toString(); const res = await fetch("http://www.shujuyu.cn/v1/api/xuefa/ping?key=YOUR_API_KEY" + query); const data = await res.json(); console.log(data);
Python
Python
1 2 3 4 5 6 7
`import requests
result = requests.get( "www.shujuyu.cn/v1/api/xuef…", params={"key": "YOUR_API_KEY"} ).json() print(result)`
PHP
PHP
1 2 3 4 5 6
<?php $ch = curl_init("http://www.shujuyu.cn/v1/api/xuefa/ping?key=YOUR_API_KEY"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = json_decode(curl_exec($ch), true); curl_close($ch); print_r($result);
Go
Go
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
`package main
import ( "fmt" "io" "net/http" )
func main() { req, err := http.NewRequest("GET", "www.shujuyu.cn/v1/api/xuef…", nil) if err != nil { panic(err) } resp, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) }`
官方还提供了 Java、C# 以及 MCP(Model Context Protocol) 的调用示例。MCP 支持 JSON-RPC 2.0 与 Streamable HTTP,可接入 Cursor、Claude Desktop 等 AI 编程助手,便于在开发过程中通过自然语言调用题库接口。
六、接口返回结构分析
所有接口采用统一的响应格式:
JSON
1 2 3 4 5
{ "code": 0, // 状态码,0 表示成功 "msg": "success", // 返回消息 "data": {} // 业务数据对象 }
这种结构简洁统一,前后端可以统一处理错误码和业务数据,降低集成成本。
七、适用场景推荐
场景 推荐子接口 驾考刷题小程序/App 分页列表、题目详情、答题校验 每日一题 / 随机练习 随机出题 搜题功能 全文搜索、精确查询 错题本 / 练习卷 批量查询、分页列表 题型筛选 题型列表、可查询字段列表 带图题目展示 题目图片、题目详情 接口监控 健康检查、数据统计
八、测评总结
✅ 优点
- 数据源权威 :基于交管 12123 复习题库,题目内容与官方贴近,适合驾考学习场景。
- 题库规模适中 :4173 条记录,覆盖单选、多选、判断三种题型,其中 1255 道带图片题目,能满足大部分刷题需求。
- 字段设计合理 :区分简略字段与详情字段,列表页可只拉取必要数据,节省流量和渲染时间。
- 功能链路完整 :从题目查询、分页、搜索,到随机出题、答题校验,形成了完整的刷题闭环。
- 支持全文搜索 :
fulltext_enabled: true,可直接实现“搜题”功能,无需自建搜索引擎。 - 多语言示例丰富 :cURL、JavaScript、Python、PHP、Java、Go、C# 及 MCP 全覆盖,前后端开发者都能快速上手。
- MCP 支持 :可接入 AI 编程工具,提升开发体验。
- 计费透明 :按次计费,单价 ¥0.002/次,次数包最高可省 20%,适合个人开发者和团队项目。
⚠️ 不足与注意事项
- 仅支持 HTTP :文档中明确标注协议为 HTTP,生产环境建议确认是否支持 HTTPS,若在小程序或 App 中使用,平台可能强制要求 HTTPS。
- 部分接口文档未完全展开 :如“精确查询”“全文搜索”“分页列表”“题目详情”“批量查询”“随机出题”“答题校验”等接口的请求参数和返回字段在页面中未详细列出,实际使用时建议通过在线调试功能验证。
- 免费额度未明确 :页面未明确展示免费调用额度,新用户建议先购买小额次数包进行测试。
- 数据更新频率 :标注为“实时”,但具体更新机制未披露,涉及法规变动的题目建议人工二次核对。
九、使用建议
- 生产环境请使用请求头传递 API Key ,避免密钥泄露。
- 上线前先调用健康检查接口 确认服务可用性。
- 列表页优先使用简略字段 (
id、type、question),详情页再按需加载options、answer、images,优化性能。 - 带图题目需预先处理图片资源 ,建议通过题目图片接口获取后进行 CDN 缓存,避免每次请求都去远程拉取。
- 答题校验结果建议结合本地逻辑二次确认 ,避免因网络延迟导致用户体验问题。
- 关注
rate_limit返回的限流信息 (如有),合理控制调用频率,避免触发限制。
十、总结
数鱼的“学法减分题库”API 是一款基于交管 12123 题库、功能完整、集成简便的驾考刷题服务。如果您正在开发驾考学习类小程序、App 或网站,且不希望自行维护庞大的题库数据,这个接口可以显著降低开发成本,快速上线刷题功能。
对于需要搜题、随机出题、答题校验等核心能力的项目,这个 API 值得一试。
接口地址: www.shujuyu.cn/api/detail/…
如需我为您封装该题库的 JavaScript SDK、Python 客户端,或提供配套的刷题页面 Demo,欢迎继续交流。