# squirrelx
**Repository Path**: cheng639/squirrelx
## Basic Information
- **Project Name**: squirrelx
- **Description**: 以golang为后端语言的B/S架构数据库CI/CD工具
- **Primary Language**: Go
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-01-23
- **Last Updated**: 2022-01-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 1. 基本介绍
### 1.1 项目介绍
> Gin-G是一个基于gorm和gin开发的后台web框架,源自gin-vue-admin,授权登录,路由,控制器,验证,模型等大不相同,是一个适合RESTful API 开发的web框架
### 1.2 版本列表
- master: 1.0.0
## 2. 使用说明
```
- golang版本 >= v1.14
- IDE推荐:Goland
- 初始化项目: 需要自行生成数据库和表,并在配置文件中添加数据库连接参数
```
- 使用git克隆本项目
- ```git
git clone
go mod tidy
```
> Zap日志库使用指南&&配置指南
Zap日志库的配置选择在[config.yaml](./server/config.yaml)下的zap
```yaml
# zap logger configuration
zap:
level: 'debug'
format: 'console'
prefix: '[GIN-G]'
director: 'log'
link_name: 'latest_log'
show_line: true
encode_level: 'LowercaseColorLevelEncoder'
stacktrace_key: 'stacktrace'
log_in_console: true
```
| 配置名 | 配置的类型 | 说明 |
| -------------- | ---------- | ------------------------------------------------------------ |
| level | string | level的模式的详细说明,请看[zap官方文档](https://pkg.go.dev/go.uber.org/zap?tab=doc#pkg-constants)
info: info模式,无错误的堆栈信息,只输出信息
debug:debug模式,有错误的堆栈详细信息
warn:warn模式
error: error模式,有错误的堆栈详细信息
dpanic: dpanic模式
panic: panic模式
fatal: fatal模式
|
| format | string | console: 控制台形式输出日志
json: json格式输出日志 |
| prefix | string | 日志的前缀 |
| director | string | 存放日志的文件夹,修改即可,不需要手动创建 |
| link_name | string | 在server目录下会生成一个link_name的[软连接文件](https://baike.baidu.com/item/%E8%BD%AF%E9%93%BE%E6%8E%A5),链接的是director配置项的最新日志文件 |
| show_line | bool | 显示行号, 默认为true,不建议修改 |
| encode_level | string | LowercaseLevelEncoder:小写
LowercaseColorLevelEncoder:小写带颜色
CapitalLevelEncoder: 大写
CapitalColorLevelEncoder: 大写带颜色 |
| stacktrace_key | string | 堆栈的名称,即在json格式输出日志时的josn的key |
| log_in_console | bool | 是否输出到控制台,默认为true |
- 开发环境 || 调试环境配置建议
- `level:debug`
- `format:console`
- `encode_level:LowercaseColorLevelEncoder`或者`encode_leve:CapitalColorLevelEncoder`
- 部署环境配置建议
- `level:error`
- `format:json`
- `encode_level: LowercaseLevelEncoder `或者 `encode_level:CapitalLevelEncoder`
- `log_in_console: false`
- 建议只是建议,按照自己的需求进行即可,给出建议仅供参考
## 3. 技术选型
- 路由:用`Gin`快速搭建基础restful风格API,`Gin`是一个go语言编写的Web框架。
- 中间件:支持`Gin`中间件
- 验证器:Gin 可以解析并验证请求的输入参数,包括XML,Json, Form等,Gin使用 go-playground/validator/v10 进行验证
- 控制器:嵌套的多层控制器,实现方法的继承,用户只需定义少量的方法,减少工作量。
- 数据库:使用`gorm`实现对数据库的基本操作,已添加对sqlite数据库的支持。
- 缓存:使用`Redis` 缓存数据。
- 优雅重启:使用 fvbock/endless优雅地重启或停止 web 服务器
- 配置文件:Viper支持在运行时让应用程序实时读取配置文件。
- 日志:使用`go-logging`实现日志记录。
## 4. 项目架构
### 4.1 目录结构
```
├─gin-g (文件夹)
│ ├─controller (控制器)
│ ├─config (配置包)
│ ├─core (內核)
│ ├─global (全局对象)
│ ├─initialiaze (初始化)
│ ├─middleware (中间件)
│ ├─model (结构体层)
│ ├─router (路由)
│ └─utils (公共功能)
```
## 5.. 商用注意事项
如果您将此项目用于商业用途,请遵守Apache2.0协议并保留作者技术支持声明。