博客网站需要用到一些数据服务,比如Live2d看板娘、个人音乐等,使用第三方不稳定,所以基于Node.js自己搭建Api服务。
数据来源于聚合数据、Github等社区 单节点,可下载源码自行搭建,https://gitee.com/timelessq/tl-api
网站地址:https://api.timelessq.com/
目录结构
api
├─ .eslintrc
├─ config // 数据库配置文件
├─ development.js // 开发环境下的入口文件
├─ mongodb-data // mongodb数据
│ ├─ bing.js
│ ├─ garbage.js
│ ├─ license.js
│ └─ postalcode.js
├─ nginx.conf // nginx 配置文件
├─ package.json
├─ pm2.json // pm2 配置文件
├─ production.js // 生产环境下的入口文件
├─ src
│ ├─ bootstrap // 启动自动执行目录
│ │ ├─ master.js // Master 进程下自动执行
│ │ └─ worker.js // Worker 进程下自动执行
│ ├─ config // 配置文件目录
│ │ ├─ adapter
│ │ │ ├─ cache.js // 缓存配置文件
│ │ │ ├─ logger.js // 日志配置文件
│ │ │ ├─ model.js // 数据库配置
│ │ │ ├─ session.js
│ │ │ └─ view.js // 模板引擎配置
│ │ ├─ adapter.js
│ │ ├─ config.js // 默认配置文件
│ │ ├─ config.production.js // 生产环境下的默认配置文件,和 config.js 合并
│ │ ├─ crontab.js // 定时任务
│ │ ├─ extend.js // 扩展
│ │ ├─ middleware.js // 中间件
│ │ └─ router.js // 路由
│ ├─ controller
│ │ ├─ azurlane // 碧蓝航线
│ │ │ ├─ ship.js
│ │ │ └─ spine.js
│ │ ├─ bangumi.js // 番剧
│ │ ├─ base.js
│ │ ├─ bilibili.js // 哔哩哔哩
│ │ ├─ district.js // 行政区划级联
│ │ ├─ garbage.js // 垃圾分类
│ │ ├─ index.js
│ │ ├─ license.js // 车牌信息查询
│ │ ├─ live2d // Live2d看板娘
│ │ │ ├─ base.js
│ │ │ ├─ get.js
│ │ │ ├─ lists.js
│ │ │ ├─ model.js
│ │ │ ├─ texture.js
│ │ │ └─ update.js
│ │ ├─ music // 音乐Api
│ │ │ ├─ netease.js
│ │ │ └─ tencent.js
│ │ ├─ postalcode.js // 邮政编码
│ │ ├─ time.js // 时间查询
│ │ ├─ wallpaper // 壁纸
│ │ │ ├─ bing.js
│ │ │ └─ index.js
│ │ └─ weather.js // 天气查询
│ ├─ extend
│ │ └─ context.js
│ ├─ logic // 校验层
│ │ ├─ azurlane
│ │ │ ├─ ship.js
│ │ │ └─ spine.js
│ │ ├─ district.js
│ │ ├─ image
│ │ │ └─ bing.js
│ │ ├─ license.js
│ │ ├─ live2d
│ │ │ ├─ index.js
│ │ │ ├─ model.js
│ │ │ └─ texture.js
│ │ ├─ music.js
│ │ ├─ postalcode.js
│ │ └─ weather.js
│ ├─ model // 数据模型
│ │ ├─ index.js
│ │ └─ wallpaper
│ │ ├─ bing.js
│ │ └─ chevereto.js
│ └─ utils
│ └─ crypto.js
├─ test
│ └─ index.js
├─ view
│ └─ index.html
└─ www // 静态资源
├─ azurlane-assets // 碧蓝航线SD小人
├─ bangumi // 番剧数据
│ └─ data.json
├─ cascade // 行政区划
│ ├─ areas.json
│ ├─ cities.json
│ ├─ pc-code.json
│ ├─ pca-code.json
│ ├─ pcas-code.json
│ ├─ provinces.json
│ └─ streets.json
└─ live2d-assets // live2d模型
系统设计
- 使用Node.js作为开发语言,以ThinkJS 3.0框架为基础
- 数据库使用Mongodb存储Api用到的不规则数据
- 缓存使用文件存储,暂时没有用Redis
- 非RESTful规范
- 文档使用Apifox管理
1、时间查询Api
基于lunar-javascript npm包实现阳历、农历、黄历、节日、星座以及节气等信息查询
2、动画番组信息
数据来源:https://github.com/bangumi-data/bangumi-data,提供按时间或标题查询番剧
3、天气预报
数据来源:https://www.nowapi.com
4、Live2D
提供指定或随机查询Live2D模型,模型主要有B站2233娘、药水制作师、超次元游戏:海王星
数据来源:https://github.com/Eikanya/Live2d-model
5、碧蓝航线
查询舰娘列表以及SD小人模型
模型来源:https://github.com/Pelom777/AzurLaneSD
其他的接口数据基本基于聚合数据的离线数据
后续功能规划
- 数据存储逐步迁移到MongoDB
- 新增成语大全信息查询接口,数据来源于聚合
- 新增星座信息查询接口
- 新增二维码生成接口
- 新增身份证号段归属查询接口
- 行政区划查询增加港澳台数据
更新日志
v1.0.2
2022-10-18
- 【新功能】 开放QQ音乐接口,通过QQ号查询歌单
2022-07-24
- 【新功能】 新增Bing必应每日壁纸接口
- 【新功能】 新增Chevereto图床随机壁纸接口
- 【优化】 使用MongoDB替换原来的文件存储
- 解决 碧蓝航线舰娘列表,不输入name参数,结果为空问题
2022-06-13
- 【新功能】 新增《碧蓝航线》手游舰娘列表查询接口
- 【新功能】 新增《碧蓝航线》手游舰娘Spine小人模型查询接口
- 【文档】 Api文档由Swagger迁移到Apifox
2022-03-20
- 【新功能】 新增biilibili用户信息查询接口
- 【新功能】 新增biilibili收藏夹列表查询接口
- 【新功能】 新增biilibili收藏夹内容查询接口
- 【新功能】 新增biilibili关注列表查询接口
v1.0.1
2021-10-06
- 【新功能】 新增车牌号信息查询接口
- 【优化】 添加logic,接口参数校验层
- 【BUG】解决查询十二时辰黄历信息月份天数计算错误问题
2021-07-15
- 【新功能】 新增垃圾分类查询接口
- 【新功能】 新增邮政编码查询接口
2021-02-22
- 【新功能】 新增番剧信息查询接口
v1.0.0
2020-10-08
- 【新功能】 新增时间、农历信息查询接口
2020-08-19
- 初始化项目,使用Node.js开发
还没有评论,快来抢第一吧