mirror of
https://github.com/woodchen-ink/random-api-go.git
synced 2025-07-18 05:42:01 +08:00
Bumps [golang.org/x/time](https://github.com/golang/time) from 0.11.0 to 0.12.0. - [Commits](https://github.com/golang/time/compare/v0.11.0...v0.12.0) --- updated-dependencies: - dependency-name: golang.org/x/time dependency-version: 0.12.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Random API Go
一个基于Go的随机API服务,支持多种数据源和管理后台。
功能特性
- 🎯 支持多种数据源:兰空图床API、手动配置、通用API接口
- 🔐 OAuth2.0 管理后台登录(CZL Connect)
- 💾 SQLite数据库存储
- ⚡ 内存缓存机制
- 🔄 URL替换规则
- 📝 可配置首页内容
- 🎨 现代化Web管理界面
环境变量配置
复制 env.example
为 .env
并配置以下环境变量:
# 服务器配置
PORT=:5003 # 服务端口
READ_TIMEOUT=30s # 读取超时
WRITE_TIMEOUT=30s # 写入超时
MAX_HEADER_BYTES=1048576 # 最大请求头大小
# 数据存储目录
DATA_DIR=./data # 数据存储目录
# OAuth2.0 配置 (必需)
OAUTH_CLIENT_ID=your-oauth-client-id # CZL Connect 客户端ID
OAUTH_CLIENT_SECRET=your-oauth-client-secret # CZL Connect 客户端密钥
快速开始
- 克隆项目
git clone <repository-url>
cd random-api-go
- 配置环境变量
cp env.example .env
# 编辑 .env 文件,填入正确的 OAuth 配置
- 运行服务
go run main.go
- 访问服务
OAuth2.0 配置
本项目使用 CZL Connect 作为 OAuth2.0 提供商:
- 授权端点: https://connect.czl.net/oauth2/authorize
- 令牌端点: https://connect.czl.net/api/oauth2/token
- 用户信息端点: https://connect.czl.net/api/oauth2/userinfo
请在 CZL Connect 中注册应用并获取 client_id
和 client_secret
。
API 端点
公开API
GET /
- 首页GET /{endpoint}
- 随机API端点
管理API
GET /admin/api/oauth-config
- 获取OAuth配置POST /admin/api/oauth-verify
- 验证OAuth授权码GET /admin/api/endpoints
- 列出所有端点POST /admin/api/endpoints/
- 创建端点GET /admin/api/endpoints/{id}
- 获取端点详情PUT /admin/api/endpoints/{id}
- 更新端点DELETE /admin/api/endpoints/{id}
- 删除端点POST /admin/api/data-sources
- 创建数据源GET /admin/api/url-replace-rules
- 列出URL替换规则POST /admin/api/url-replace-rules/
- 创建URL替换规则GET /admin/api/home-config
- 获取首页配置PUT /admin/api/home-config/
- 更新首页配置
数据源类型
- 兰空图床 (lankong): 从兰空图床API获取图片
- 手动配置 (manual): 手动配置的URL列表
- API GET (api_get): 从GET接口获取数据
- API POST (api_post): 从POST接口获取数据
部署
Docker 部署
FROM golang:1.21-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o random-api-server main.go
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /app/random-api-server .
COPY --from=builder /app/web ./web
EXPOSE 5003
CMD ["./random-api-server"]
环境变量部署
确保在生产环境中正确设置所有必需的环境变量,特别是OAuth配置。
许可证
MIT License
Languages
Go
50.9%
TypeScript
46.9%
CSS
1.6%
Dockerfile
0.4%
JavaScript
0.2%