古诗词·一言 API 是一个可以随机返回一句古诗词名句的接口。(可刷新本页查看效果)
具有以下特点:
项目首页:https://gushi.ci
项目 Github: https://github.com/xenv/gushici
https://api.gushi.ci/{一级分类}/{二级分类(可选)}.{返回格式(可选)}
查看所有目前支持的分类:https://api.gushi.ci/
目前支持的后缀:.svg .txt .png .json 不加后缀默认返回 json
<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 即可。欢迎有兴趣的同学共同学习,提意见。
1
monkeylmj 2018-08-06 00:21:36 +08:00 via Android
<img src="https://api.gushi.ci/all.svg">
|
4
mooncakejs 2018-08-06 00:26:04 +08:00 via iPhone
数据不大直接加载到内存比较好吧,干嘛还要 redis
|
5
lhx2008 OP @mooncakejs
1. 数据不少,一万条,png 用 base64 存,有 20 多 M 2. 访问量统计需要持久化 3. 可以异地 /跨语言直接发布新的数据,现在的数据就是由 python 发上去的 |
6
karottc 2018-08-06 00:50:01 +08:00 via Android
优秀,后生可畏
|
7
imhx233 2018-08-06 01:35:50 +08:00 via iPhone
哇 其实这也是我一直想做的(奈何没技术)。
可以考虑下根据诗人甚至具体到某一首诗来返回一言。 本来想自己部署一个的,但是部署方式太复杂了,于是只能作罢。 |
8
twor 2018-08-06 01:45:45 +08:00
能支持自定义语句吗
比如 ” PHP 是最好的语言 - 爱因斯坦“ |
9
lhx2008 OP |
10
densuc 2018-08-06 08:03:39 +08:00 via iPhone
哈哈哈 记得 你还是高中生吧 😁
|
12
missdeer 2018-08-06 08:59:21 +08:00
数据库能分享吗
|
13
dejavuwind 2018-08-06 09:02:05 +08:00 via Android
手动点赞。古诗词我还是很喜欢的。
|
14
E0 2018-08-06 09:03:47 +08:00 via Android
赞一个,有些一言 api 句子真的尴尬中二。
|
15
henbf 2018-08-06 09:24:51 +08:00
<kbd><img src="https://api.gushi.ci/all.svg"></kbd>
|
16
sagaxu 2018-08-06 09:24:58 +08:00 via Android 1
才 10K 条,png 不需要 base64 编码,全放内存里很合适,毕竟 JVM 基础开销都不止 20M 了。统计可以记录到进程内,定期往 db 里刷写。
|
17
Sanko 2018-08-06 09:31:37 +08:00
支持楼主,这个一定时间内有没有访问次数限制?
|
20
kokdemo 2018-08-06 10:12:10 +08:00
这个有点帅啊!
|
21
pipijin 2018-08-06 11:29:25 +08:00 via Android
优秀
|
22
kran 2018-08-06 17:03:12 +08:00 via iPhone
看了这个帖子自己写了一个,30 多万的数据 us 级响应,sqlite 数据库
|
23
lhx2008 OP @kran 走 http 吗?其实我感觉时间主要还是看 http 框架和链路上的各种反代和防火墙了
|
24
sangmong 2018-08-06 18:04:05 +08:00
赞
|
25
dyxang 2018-08-06 18:22:27 +08:00
楼主 good,用的是这个库吗,在这里: https://github.com/chinese-poetry/chinese-poetry
|
27
sobigfish 2018-08-06 18:48:08 +08:00
字体看着虚, 用个开源的黑体?
|
28
dyxang 2018-08-06 19:01:54 +08:00 1
|
31
lhx2008 OP @dyxang
svg 用的是用户的系统字体,而不是我这边生成,svg 默认是楷体,如果没有是用雅黑或者其他系统字体。小众字体要有效果必须要用户电脑安装了字体。你可以在引用的时候修改 SVG 的 CSS,嵌入网络字体。 png 是我这边生成,用的是思源宋体, |
33
lhx2008 OP font-family='KaiTi, "Segoe UI", "Lucida Grande", Helvetica, Arial, "Microsoft YaHei", FreeSans, Arimo, "Droid Sans","wenquanyi micro hei","Hiragino Sans GB", "Hiragino Sans GB W3", sans-serif'
|
36
sevenQu 2018-08-06 23:38:26 +08:00
感觉挺好的,不知道为什么,我必须要翻墙才能看到你的网站和 api 返回,是我的原因吗?,ps:如果是返回是完整的诗会更好,总是一句经典的,我个人总想去看看全诗是什么
|
37
lhx2008 OP @sevenQu 没有被墙,可能是 dns 的问题吧,小众域名管理局的 dns 不给力,有机会还是换回主流域名吧
|
38
vjnjc 2018-08-07 12:12:02 +08:00
已 star。
请问楼主能部署在我的域名下嘛?买了一个域名不知道放点啥 0 0 |
39
vjnjc 2018-08-07 12:14:02 +08:00
再看了一下,svg 的效果很好啊,原来能这么用
|
41
E1n 2018-08-07 13:20:33 +08:00 via Android
不错👍
|
43
lhx2008 OP @vjnjc GPL 协议的,你自己可以编译运行来玩啊,只是不能卖给别人。
我没有提供完整的古诗词数据在 github 上面,不过代码是没问题的。所以你自己玩还要自己采集下数据。 |
46
sangmong 2018-08-08 17:20:10 +08:00
想要整首诗。。。类似西窗烛那种
|
47
x7395759 2018-08-08 17:46:10 +08:00
太强了
|
48
lemcon 2018-08-10 00:16:12 +08:00
特地登录一个 n 年前的账号上来狂顶楼主
|
49
lemcon 2018-08-10 00:16:35 +08:00
楼主,什么时候能加关键词呀?
|
50
lhx2008 OP @lemcon 谢谢,会考虑提供更多标签(分类)和更加智能的显示,但是根据关键词搜索结果这个,没有在计划内,不过你也可以自己稍微改一下来玩玩。(只采集你想要的关键词的诗导入就可以)
|
54
lhx2008 OP |
55
ibegyourpardon 2018-08-11 23:16:56 +08:00
svg 在线是用什么生成的……
|
56
lhx2008 OP @ibegyourpardon 在浏览器打开 svg,右键查看源代码你就懂了。
|
57
ibegyourpardon 2018-08-12 09:36:21 +08:00
|
58
lhx2008 OP @ibegyourpardon 离线绘图然后丢进 redis,实时太慢
|