使用Node.js搭建Api服务

使用Node.js搭建Api服务

2021年08月18日 阅读:33 字数:1615 阅读时长:4 分钟

基于Node.js搭建的Api服务(万年历、Live2d、QQ音乐等),基本上是自用。

基于Node.js搭建的Api服务(万年历、Live2d、QQ音乐等),基本上是自用。

数据来源于聚合数据、Github等社区,以文件或MongoDB方式存储,不定期更新数据源。

单节点,小水管服务器,不敢保证稳定性,可下载源码自行搭建

Github:https://github.com/spacesless/api

Gitee:https://gitee.com/timelessq/api

系统设计

  • 使用Node.js作为开发语言,以ThinkJS 3.0框架为基础
  • 数据库使用Mongodb存储Api用到的不规则数据
  • 缓存使用文件存储,暂时没有用Redis
  • 非RESTful规范
  • 文档使用Apifox管理

1、时间查询Api

基于lunar-javascript npm包实现阳历、农历、黄历、节日、星座以及节气等信息查询

阳历、农历查询API接口

2、动画番组信息

数据来源:https://github.com/bangumi-data/bangumi-data,提供按时间或标题查询番剧

番剧信息API接口

3、Live2D

提供指定或随机查询Live2D模型,模型主要有B站2233娘、药水制作师、超次元游戏:海王星

数据来源:https://github.com/Eikanya/Live2d-model

Live2d模型API接口

4、碧蓝航线

查询舰娘列表以及SD小人模型

模型来源:https://github.com/Pelom777/AzurLaneSD

番剧信息API接口

目录结构

api
├─ .eslintrc
├─ config  // 数据库配置文件
├─ development.js // 开发环境下的入口文件
├─ mongodb // 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模型

后续功能规划

  1. 数据存储逐步迁移到MongoDB
  2. 新增成语大全信息查询接口,数据来源于聚合
  3. 新增星座信息查询接口
  4. 新增二维码生成接口
  5. 新增身份证号段归属查询接口
  6. 行政区划查询增加港澳台数据

更新日志

v1.3.1

2023-02-25

  • 🔥 【新功能】 添加中文拼音转换接口
  • ⚡️ 【优化】 优化万年历接口,添加儒略日、日期推移,以及月相、物候等农历信息
  • ⚡️ 【优化】 更新行政区划、番剧信息、碧蓝航线接口数据

v1.3.0

2023-01-16

  • 🔥 【新功能】 添加哈希散列函数接口
  • 🔥 【新功能】 添加加密、解密接口
  • 🔥 【新功能】 添加编码转换接口

v1.2.2

2022-12-25

  • 🔥 【新功能】 添加二维码生成接口
  • 🔥 【新功能】 添加成语大全接口
  • 🔥 【新功能】 添加成语接龙接口
  • 🐞 【修复】 修复QQ音乐搜索接口地址更换问题

2022-11-22

  • 🔥 【新功能】 添加星座查询接口
  • ❄️ 【废弃】 废弃天气预报、历史天气接口
  • ❄️ 【废弃】 废弃网易云音乐接口
  • 🐞 【修复】 修复车牌信息接口查询数据错误问题

v1.2.1

2022-10-18

  • 🔥 【新功能】 开放QQ音乐接口(请勿商用)

2022-07-24

  • 🔥 【新功能】 新增Bing必应每日壁纸接口
  • 🔥 【新功能】 新增Chevereto图床随机壁纸接口
  • ⚡️ 【优化】 使用MongoDB替换原来的文件存储
  • 🐞 【修复】 解决碧蓝航线舰娘列表,不输入name参数,结果为空问题

v1.2.0

2022-06-13

  • 🔥 【新功能】 新增《碧蓝航线》手游舰娘列表查询接口
  • 🔥 【新功能】 新增《碧蓝航线》手游舰娘Spine小人模型查询接口
  • 📃 【文档】 Api文档由Swagger迁移到Apifox

2022-03-20

  • 🔥 【新功能】 新增biilibili用户信息查询接口
  • 🔥 【新功能】 新增biilibili收藏夹列表查询接口
  • 🔥 【新功能】 新增biilibili收藏夹内容查询接口
  • 🔥 【新功能】 新增biilibili关注列表查询接口

v1.1.0

2021-10-06

  • 🔥 【新功能】 新增垃圾分类查询接口
  • 🔥 【新功能】 新增邮政编码查询接口
  • 🔥 【新功能】 新增车牌号信息查询接口

2021-02-22

  • ⚡️ 【优化】 添加logic,接口参数校验层
  • 🐞 【修复】 查询十二时辰黄历信息月份天数计算错误问题

v1.0.0

2020-10-08

  • 🎉 初始化项目,使用Node.js开发
  • 🔥 【新功能】 新增时间、农历信息查询接口
  • 🔥 【新功能】 新增番剧信息查询接口

推荐阅读

恰饭区

评论区 (0)

0/500

还没有评论,快来抢第一吧