目前系统有如下 API:
-
一言(Hitokoto)
-
网易云音乐(Cloudmusic)
-
Google 分析(Google Analytics)(这条并没有什么卵用
-
博客搜索的 API(仅作流量转发和字段验证)
有关这些 API 的具体信息请移步至 API 的文档(文档包含展示及测试模块,GitHub 无法展示)。
以下依赖都是编译时依赖,并非是运行时的依赖:
-
Elixir (限流模块使用,二者使用 Unix Domain Socket 通信,可以通过配置文件 [rate-limit] 的 enable 字段禁用掉)
-
Rust(博客的搜索 API,基于 Tantivy)
如果只想部署 Hitokoto 这一特定 API,则这两个依赖都不需要。
支持仅运行某一个 API 服务。比如想只运行 Hitokoto 服务:
./DIEM-API -view=hitokoto
在运行 Hitokoto 服务之前,记得使用如下参数来初始化数据库:
./DIEM-API -migrate
数据库的配置路径以及 Hitokoto 源文件的配置路径在配置文件的 [hitokoto] 字段。其中源文件的每一行格式是包含以下元素的五元组(不同列之间采用制表符分割):
id | origin | length | source | hitokoto | |
---|---|---|---|---|---|
释义 |
一言的主键,整数 |
可随意填写 |
一言主体长度,整数 |
一言的出处 |
一言主体 |
举例 |
1271737837318521026 |
ohx |
16 |
小王子 |
我太年轻了,甚至不懂怎么去爱她。 |
避免侵权,我不会将接口目前使用的一言数据库源文件公开,如果有需要,可以使用 hitokoto.cn 开源的句子,或者使用我之前写的 一言爬虫 来爬取,聪明如你肯定知道如何把 JSON 格式转化成对应的五元组~
clone 本仓库并在 diem.toml
修改相关的信息。
go build -o server # (1)
./server -config diem.toml -migrate # (2)
env GIN_MODE=release ./server -config diem.toml # (3)
-
编译成二进制
-
创建 Hitokoto 的数据库(基于 Bolt)
-
生产环境(即设置环境变量 GIN_MODE 为 release)
其中生产环境不会在终端打印日志,而是会把日志都记录在 _log 文件夹内。