本项目是 Project 应用的后端服务,使用 Go 语言构建。它为用户管理、身份认证和其他核心功能提供了一套完整的 API。
- 用户管理: 创建、更新、删除和列出用户。
- 基于角色的访问控制 (RBAC): 管理用户角色和权限。
- 身份认证: 基于 JWT 的身份认证,确保 API 访问安全。
- 管理面板: 用于管理任务的独立 API。
- 配置驱动: 所有敏感配置(数据库、Redis、JWT 密钥)都从环境变量加载。
- 开发语言: Go
- Web 框架: Gin
- 数据库: PostgreSQL
- ORM: GORM
- 内存数据库: Redis (用于缓存和会话管理)
- 身份认证: JWT (JSON Web Tokens)
- Go (版本 1.18 或更高)
- PostgreSQL
- Redis
- Git
-
克隆仓库:
git clone https://github.com/zhoupb01/golang-base cd golang-base
-
安装依赖:
go mod tidy
-
配置环境变量:
通过复制示例文件,在项目根目录创建一个
.env
文件:cp .env.example .env
然后,打开
.env
文件并更新以下变量以匹配您的本地开发环境:# 数据库 DB_HOST=127.0.0.1 DB_PORT=5432 DB_USER=your_db_user DB_DATABASE=project DB_PASSWORD=your_db_password DB_SSLMODE=disable DB_TIME_ZONE=Asia/Shanghai # JWT JWT_SECRET_KEY=a_very_strong_and_long_secret_key # Redis REDIS_ADDR=localhost:6379 REDIS_PASSWORD=your_redis_password REDIS_DB=0
重要提示: 为了保证安全,
JWT_SECRET_KEY
请使用一个长而随机的强字符串。 -
运行应用:
go run main.go
默认情况下,服务将在
http://localhost:8000
启动。
项目提供了一个 HTTP 测试文件 app/handlers/admin/user_api_tests.http
,用于测试管理员用户管理的 API。您可以使用 VS Code REST Client 等工具来运行这些测试。
在运行测试之前,请确保:
- 应用已成功启动。
- 已获取一个有效的管理员 JWT 令牌。
- 将
.http
文件中的@admin_token
占位符替换为您的令牌。
欢迎参与贡献!请随时提交 Pull Request。