简介
古诗词·一言 API 是一个可以随机返回一句古诗词名句的接口。(可刷新本页查看效果)
具有以下特点:
- 快:使用 Vert.x Java 异步框架开发,使用 Redis 数据库,确保毫秒级稳定响应。
- 多:收录将近 10000 条古诗词名句
- 全:支持 svg / txt / json / png 调用,满足你在任何地方的调用需求
- 准:可以根据你的喜好,在指定的分类中进行随机返回
项目首页:https://gushi.ci
项目 Github: https://github.com/xenv/gushici
API 举例
- https://api.gushi.ci/all.json
- https://api.gushi.ci/all.svg
- https://api.gushi.ci/shuqing/libie.png
- https://api.gushi.ci/rensheng.txt
API 地址格式(仅支持 https)
https://api.gushi.ci/{一级分类}/{二级分类(可选)}.{返回格式(可选)}
查看所有目前支持的分类:https://api.gushi.ci/
目前支持的后缀:.svg .txt .png .json 不加后缀默认返回 json
例子:SVG 调用
<img src="https://api.gushi.ci/all.svg">
SVG 后缀是我们推荐的最优调用方案,可以在部分论坛、任何博客、小程序内无损直接调用,并且可以一定程度上控制样式。缺点是部分老旧浏览器不支持。
其他调用方案见:https://gushi.ci
闲话
无意中了解到 hitokoto API,感于没有古诗词方面的 API,便想自己动手撸一个。并且,在返回结果的类型上,做了更多大胆的尝试。可以说是很有创新的。
技术栈上,第一次尝试 使用 Vert.x 开发应用,整个开发耗时两天,Vert.x 整体来说性能确实不错,响应时间一般在 15ms 以内,而本地则在 5ms 以内。但是相关生态确实不完善。异步编程也带来了更多的 bug,对于调试来说也是一个不小的挑战。
数据库我直接选择了 Redis,原因一个是为了追求极速的响应速度,第二是数据一般没有什么变化,查询也简单,没有必要用 mysql 等落地。直接从 Python 数据源采集发到 redis 即可。欢迎有兴趣的同学共同学习,提意见。