基于 Go 语言的博客 API 服务,提供图片存储、Steam 状态查询、系统信息获取等功能。
- 图片上传和管理(支持 WebP 格式)
- Steam 游戏状态查询
- IP 信息查询
- 系统信息获取(使用 fastfetch)
- API 调用统计
- 心跳检测
- Go 1.20 或更高版本
- MongoDB
- libvips(用于图片处理)
- fastfetch(用于系统信息获取)
- 克隆仓库
git clone https://github.com/yourusername/Go-Blog-Api.git
cd Go-Blog-Api
- 安装依赖
go mod download
- 配置环境变量
cp .env.example .env
# 编辑 .env 文件,填写必要的配置信息
- 运行服务
go run main.go
docker build -t blog-api .
docker run -p 5000:5000 blog-api
GET /
- 主页GET /fastfetch
- 获取系统信息POST /heartbeat
- 心跳检测# 请求示例 curl -X POST http://api.example.com/heartbeat \ -H "Authorization: Bearer YOUR_TOKEN" \ -d "application=MyApp" \ -d "introduce=My Application Description" \ -d "rgba=233,30,99,0.17" \ -d "applicationOnline=true" # 响应示例 { "message": "Heartbeat received", "application": "MyApp", "introduce": "My Application Description", "rgba": "233,30,99,0.17", "applicationOnline": true }
GET /check
- 检查服务状态# 请求示例 curl http://api.example.com/check # 响应示例(当应用在线时) { "alive": true, "last_heartbeat": 1698314159, "application": "MyApp", "introduce": "My Application Description", "rgba": "233,30,99,0.17", "applicationOnline": true } # 响应示例(当应用离线时) { "alive": true, "last_heartbeat": 1698314159, "applicationOnline": false } # 响应示例(从未收到心跳时) { "alive": false, "last_heartbeat": null, "applicationOnline": false }
GET /check
- 检查服务状态
GET /random_image
- 随机获取图片GET /images/count
- 获取图片总数GET /images/list
- 获取图片列表POST /images/add
- 添加新图片DELETE /images/:hash
- 删除图片GET /images/:hash
- 获取指定图片GET /i/:hash
- 通过 hash 直接访问图片
GET /steam_status
- 获取 Steam 状态GET /ipcheck
- IP 信息查询GET /api_stats
- 获取 API 调用统计GET /api_stats/:key
- 获取特定接口调用次数
AGPLv3 License