# go-dora-api **Repository Path**: redxing96/go-dora-api ## Basic Information - **Project Name**: go-dora-api - **Description**: No description available - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-26 - **Last Updated**: 2025-07-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ```markdown # go-dora-api 后台管理系统 这是一个基于 Go 语言开发的后台管理系统,提供了权限管理、菜单管理、角色管理等核心功能,适用于企业级后台管理系统的快速搭建。 ## 项目特点 - **模块化设计**:采用清晰的模块划分,便于维护和扩展。 - **权限控制**:支持基于角色的权限管理(RBAC),可灵活配置用户权限。 - **JWT 认证**:使用 JWT 实现安全的用户认证与授权。 - **国际化支持**:支持中英文切换,方便多语言环境部署。 - **Swagger 文档**:内置 API 文档,便于前后端联调。 - **日志系统**:支持结构化日志记录,便于调试和监控。 - **数据库迁移**:提供数据库版本管理工具,确保数据一致性。 ## 目录结构 ```javascript ├── api/ # 接口定义 ├── internal/ │ ├── controller/ # 控制器 │ ├── dao/ # 数据访问层 │ ├── logic/ # 业务逻辑层 │ ├── model/ # 数据模型 │ ├── service/ # 服务接口 │ └── cmd/ # 命令行启动入口 ├── utility/ # 工具类 ├── resource/ # 静态资源 ├── manifest/ # 配置文件及部署相关 └── main.go # 程序入口 ``` ## 快速开始 ### 安装依赖 ```bash go mod tidy ``` ### 构建项目 ```bash go build -o go-dora-api main.go ``` ### 运行项目 ```bash ./skyline ``` 默认监听地址为 `http://localhost:8000`,可通过配置文件修改端口和数据库连接信息。 ### 访问文档 访问 `http://localhost:8000/swagger` 查看 API 文档。 ## 功能模块 ### 用户认证 - 登录 `/manage/auth/login` - 登出 `/manage/auth/logout` ### 权限管理 - 菜单管理 `/manage/menu` - 角色管理 `/manage/role` ### 数据模型 - 用户表 `sys_user` - 角色表 `sys_role` - 菜单表 `sys_menu` - 角色-菜单关联表 `sys_role_menu` - 用户-角色关联表 `sys_user_role` ## 配置说明 配置文件位于 `manifest/config/tmp.config.yaml`,支持以下配置项: - 数据库连接 - 日志路径与级别 - JWT 密钥与过期时间 - 国际化语言设置 ## 日志系统 支持结构化日志输出,默认日志路径为 `logs/app.log`,可通过配置文件修改日志级别和输出路径。 ## 数据库迁移 使用 `utility/migrate/migrate.go` 实现数据库版本管理,支持升级、回滚等操作。 ## 部署方式 支持 Docker 部署,Dockerfile 位于 `manifest/docker/Dockerfile`,可通过以下命令构建镜像: ```bash docker build -t skyline . docker run -d -p 8000:8000 skyline ``` ## 开发规范 - 使用 Go Modules 管理依赖 - 使用 `gofmt` 格式化代码 - 使用 `golint` 检查代码规范 - 使用 `go test` 编写单元测试 ## 贡献指南 欢迎提交 PR 和 Issue,贡献代码请遵循以下步骤: 1. Fork 项目 2. 创建新分支 3. 提交代码 4. 创建 Pull Request ## 许可证 本项目采用 MIT License,请查看 [LICENSE](LICENSE) 文件了解详细信息。 ```