news 2026/8/21 19:03:03

把多家题库统一成一个 API:tikuAdapter 安装与对接完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
把多家题库统一成一个 API:tikuAdapter 安装与对接完整指南

把多家题库统一成一个 API:tikuAdapter 安装与对接完整指南

【免费下载链接】tikuAdapter大学生网课题库接口适配器:将不同的题库整合为一个API接口。项目地址: https://gitcode.com/gh_mirrors/ti/tikuAdapter

tikuAdapter 是一个用 Go 写的题库接口适配器,把多个网课平台的搜题 API 聚合成一个标准接口,附带内置 Web 管理端。适合做自动答题脚本、网课助手或需要对接多家题库的开发者,读完你能在 5 分钟内跑起服务并完成第一次搜题。

核心能力速览

在动手之前,先明确它能替你解决什么:

  • 多题库聚合:已内置 icodef、buguake、万能、题库海、爱点、enncy、柠檬等题库,输出统一的标准 JSON 结构,你的程序只需对接一次。
  • 自定义题库零代码接入:用几行 YAML 就能声明任意第三方搜题接口,不必写 Go 代码。
  • 自建本地题库:上传 Word 题库文件即可自动解析入库,本地命中可补齐外部库的缺口。
  • 内置 Web 管理端:题库增删改查、用户管理、搜索日志查看,默认监听 8060 端口。
  • 搜索自动落库:每次搜题的结果会记录到数据库,长期运行可沉淀成你自己的私有题库。

五分钟跑起来:从克隆到第一次搜题

获取代码

git clone https://gitcode.com/gh_mirrors/ti/tikuAdapter cd tikuAdapter

环境要求 Go 1.21 及以上、Node.js 18 及以上。这里有个关键点:主程序通过go:embed把前端静态文件打进二进制里,所以必须先构建web/前端,否则直接编译失败——这是新手最常卡住的一步。

构建前端并启动服务

bash buildweb.sh go mod download go run ./cmd/adapter-service

buildweb.sh会把前端产物输出到cmd/adapter-service/dist。成功的标志是控制台出现 gin 监听 0.0.0.0:8060 的日志,浏览器打开 http://localhost:8060 能看到登录页,默认账号 admin,密码 123456。

验证搜题接口

curl -X POST 'http://localhost:8060/adapter-service/search' \ -H 'Content-Type: application/json' \ -d '{"question":"违反安全保障义务责任属于()","type":1}'

响应里出现answerKeyanswerText字段,说明题库链路已经通了。不传use参数时默认查询所有免费题库。

习惯容器化部署的话,仓库自带的 Dockerfile 可以直接用:docker build -t tiku-adapter .构建后,以docker run -d --name tiku-adapter -p 8060:8060 -v ./data:/app/data tiku-adapter启动,数据库落在挂载的 data 目录里。

config.yaml 里最关键的几项

配置文件放在程序运行目录即可,启动时自动读取,无需命令行指定。下面只讲真正影响行为的几项,统一按"不配会怎样 / 配了能做什么"来说:

database.path:SQLite 文件路径。不配会怎样——默认创建在程序目录下的tiku.db,本地没问题,容器重建就丢了;配了能做什么——建议 Docker 部署时指定data/tiku.db并挂载卷,数据可持久化。

mysql:MySQL 连接 DSN,也可用环境变量SQL_DSN指定。不配会怎样——默认用 SQLite,零外部依赖;配了能做什么——适合多实例共享同一份题库数据的场景。

limit:按 IP 限流,含时间窗口duration与窗口内允许的请求数requests。不配会怎样——默认关闭,个人使用足够;配了能做什么——防止恶意流量打爆题库配额。

api:自定义外部题库。不配会怎样——只有内置题库可用;配了能做什么——每个条目声明urlmethodheadersbodyanswer五个字段,body里用${question}占位符填题,answer用 jsonpath 指向响应中的答案位置,把enable置为 true 即接入。

recordEmptyAnswer:是否记录搜题未命中。不配会怎样——默认 false,只存命中的题;配成 true 后,空答案也入库,方便后期手动整理补题。

最小可用配置示例:

database: path: "data/tiku.db" limit: enable: false recordEmptyAnswer: true

目录速查表

目录职责
cmd/adapter-service/主入口,加载内嵌前端并启动 gin 服务
configs/示例配置与配置结构定义
internal/search/各题库搜题 API 的实现,新增题库在这里
internal/controller/internal/api/路由定义与接口处理逻辑
internal/dao/internal/entity/GORM 生成的数据库访问层
pkg/JWT、限流、日志等通用工具
web/Vue 前端管理端源码
sql/表结构定义 SQL

常见卡点与下一步

  • 编译报找不到 dist 目录:前端没构建,先执行bash buildweb.sh再编译主程序。
  • 付费题库查不到答案:token 要通过 URL 查询参数传入,例如?use=wanneng&wannengToken=你的token;不传use只会走免费题库。
  • 某题外部库查不到:把对应 Word 题库文件从 Web 端上传,本地库可以兜底。
  • 想接入新题库:在internal/search/里实现统一的 Search 接口,参考现有实现并配测试用例验证即可。

更多细节可以看仓库内的 README,仍有疑问也可以去项目 issue 区向开发者提问。

【免费下载链接】tikuAdapter大学生网课题库接口适配器:将不同的题库整合为一个API接口。项目地址: https://gitcode.com/gh_mirrors/ti/tikuAdapter

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 19:02:52

traitlets 最佳实践:10 个技巧写出优雅可维护的配置代码

traitlets 最佳实践:10 个技巧写出优雅可维护的配置代码 【免费下载链接】traitlets A lightweight Traits like module 项目地址: https://gitcode.com/gh_mirrors/tr/traitlets traitlets 是 Python 生态中一款轻量级的类型化属性(trait&#x…

作者头像 李华
网站建设 2026/8/21 19:02:01

微信消息备份完全指南:用 WeChatMsg 导出并分析你的聊天记录

微信消息备份完全指南:用 WeChatMsg 导出并分析你的聊天记录 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we…

作者头像 李华
网站建设 2026/8/21 19:00:16

Axure高保真原型设计:构建交互式函数自查表提升效率

1. 先搞清楚“函数自查表”到底解决什么原型设计问题 如果你在用 Axure 做高保真原型,特别是涉及到复杂交互逻辑、动态数据展示或者表单验证时,大概率会遇到一个头疼的问题: 记不住函数,或者用错了函数 。比如,你想让…

作者头像 李华
网站建设 2026/8/21 18:59:22

15分钟高效复现学术论文代码:标准化流程与智能工具实战指南

这次我们来看一个对研究生极其重要的实用技能:如何在15分钟内,高效定位并复现一篇学术论文的代码。对于刚进入科研领域的研0、研1同学,面对海量论文和复杂的代码仓库,常常感到无从下手。本文将全程演示如何利用现代工具链&#xf…

作者头像 李华
网站建设 2026/8/21 18:59:05

NAppGUI架构完全解析:11大核心模块如何协作构建跨平台桌面应用

NAppGUI架构完全解析:11大核心模块如何协作构建跨平台桌面应用 【免费下载链接】nappgui_src SDK for building cross-platform desktop apps in ANSI-C 项目地址: https://gitcode.com/gh_mirrors/na/nappgui_src NAppGUI 是一款用纯 ANSI-C 编写的跨平台桌…

作者头像 李华