Purine Server
嘌呤管理系统API服务端
项目简介
Purine Server是一个基于Go语言开发的嘌呤管理系统API服务端,提供了用户认证、食物嘌呤数据管理等功能。
技术栈
- 语言: Go 1.23.0
- Web框架: Gin v1.10.0
- 认证: JWT v5.2.1
- 数据库: PostgreSQL
- ORM: GORM v1.25.12
- 配置管理: godotenv
- API文档: Swagger
项目结构
purine-server/
├── cmd/
│ └── server/
│ └── main.go # 主入口文件
├── docs/ # Swagger文档
├── internal/
│ ├── config/ # 配置管理
│ ├── db/ # 数据库连接
│ ├── handlers/ # API处理器
│ ├── middleware/ # 中间件
│ ├── models/ # 数据模型
│ ├── repository/ # 数据访问层
│ ├── router/ # 路由
│ └── service/ # 业务逻辑
├── sql/ # 数据库备份
├── .env.example # 环境变量示例
├── .gitignore
├── Dockerfile # Docker配置
├── go.mod # Go模块依赖
└── go.sum
安装与部署
前置要求
- Go 1.23.0 或更高版本
- PostgreSQL 数据库
本地开发
- 克隆项目
git clone <repository-url>
cd purine-server- 配置环境变量
复制 .env.example 文件为 .env 并填写相应配置:
cp .env.example .env
# 编辑 .env 文件,填写数据库连接信息和JWT密钥- 安装依赖
go mod tidy- 运行项目
go run cmd/server/main.go服务将在 http://localhost:9898 启动。
Docker部署
- 构建Docker镜像
docker build -t purine-server .- 运行Docker容器
docker run -d \
--name purine-server \
-p 9898:9898 \
-e DATABASE_URL=<your-database-url> \
-e JWT_SECRET=<your-jwt-secret> \
-e PORT=9898 \
purine-serverAPI文档
项目集成了Swagger API文档,启动服务后可以通过以下地址访问:
http://localhost:9898/swagger/index.html
主要功能
- 用户认证: 基于JWT的用户认证系统
- 食物嘌呤数据管理: 提供食物嘌呤数据的增删改查功能
环境变量
| 变量名 | 描述 | 默认值 |
|---|---|---|
| DATABASE_URL | PostgreSQL数据库连接URL | - |
| JWT_SECRET | JWT签名密钥 | - |
| PORT | 服务端口 | 9898 |
数据库
项目使用PostgreSQL数据库,首次启动时会自动创建所需表结构。
开发指南
添加新API
- 在
internal/handlers/目录下创建新的处理器 - 在
internal/service/目录下实现业务逻辑 - 在
internal/router/目录下注册路由 - 添加Swagger注释
运行测试
go test ./...贡献
欢迎提交Issue和Pull Request。
许可证
Apache 2.0