这篇文章上次修改于 993 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
前言
之前开了一个关于一言API的坑,至今 (12.24) 还没填.于是我就想,至少,至少,在这个特殊的日子把他给初步完成.
目前姑且是收集了一些资源,如果给我自己的网站是够用了,但如果拿来当公共 API的话就显得有些相形见绌了.
万事开头难,总之先把核心逻辑部分给完成吧!
确定输出格式
返回类型肯定是 JSON 了,这不用多说.但问题是如何设置输出的值.
关于这一点,我之前参考了 hitokoto 的样式,但是我觉得不需要这么复杂,因为是我一个人运营的.
{
"id": 7320,
"uuid": "d97561d8-b4e9-46f5-addf-1d4d946dd946",
"hitokoto": "千万丈的大厦总要有片奠基石,最初的爱好无可替代。",
"type": "k",
"from": "我的精神家园",
"from_who": "王小波",
"creator": "Damianyang",
"creator_uid": 9192,
"reviewer": 9975,
"commit_from": "web",
"created_at": "1620185683",
"length": 24
}
我打算在这个基础上只留下核心部分,也就是变成这样
{
"id": 7320,
"hitokoto": "千万丈的大厦总要有片奠基石,最初的爱好无可替代。",
"type": "k",
"from": "我的精神家园",
"from_who": "王小波",
"length": 24
}
类型可能会进行二级细分,但大概就是这么一回事了!
确定数据存储类型
目前(本地调试)是采用静态 JSON 格式来存储数据的,我寻思数据量也不会很大,要不就别用数据库了.
的确数据库管理起来会更方便,但是目前我是懒得去搞了,可能以后会改成数据库查询.
代码实现
目前逻辑很简单
读本地 JSON 文件 => 转成多维数组 => 获取数组长度随机选择一个输出
文件方面采用对象来储存一组数据,因为键值对输出比较好看
其中 id 和 len 为整形,其他的为字符串.
优点:轻量,不依赖其他东西
最后输出格式如下:
{
"ID": 1,
"core": "身是菩提树,心如明镜台.时时勤拂拭,莫使有尘埃.",
"type": "哲学",
"from": "《坛经》",
"author": "神秀",
"len": 24
}
至此,核心部分基本完成,剩下的是数据迁移到数据库以及优化输出
重构优化
后期会优化的(也许大概可能说不定没准
没有评论