gofiber-study/README.MD
Shikong c5819c1ce6 添加 casbin model 定义
casbin 初始化 && 测试
2022-10-05 16:02:09 +08:00

130 lines
2.3 KiB
Markdown

## 使用 gofiber 作为 http 服务框架
## 编译环境
**因使用了 xorm.io/reverse**
### windows 环境下 需要安装 gcc 环境
>
> Mingw
> 可前往 [(mingw仓库)](https://sourceforge.net/projects/mingw-w64/files/mingw-w64/)
>
> 下载 x86_64-posix-seh
>
> 解压后将 bin 目录 添加到环境变量
>
> 重启生效即可
### 验证是否安装 gcc
```shell
gcc -v
````
## 一键初始化项目
```shell
go generate -x init.go
```
## xorm
### 从结构体 同步 数据库表结构
**User表为例**
```shell
go test ./model/user/generate -v
```
### 从 数据库 反向同步 数据库结构
**部分类型 如: bool 可能需要手动处理**
```shell
go generate ./model/user/reverse_generate.go
```
### 手动初始化
#### swagger
##### 安装
```shell
go install github.com/swaggo/swag/cmd/swag@latest
```
##### 生成 swagger 文档
```shell
# --parseInternal 解析内部依赖包,默认值: false
# --parseDependency 解析外部依赖包,默认值: false
# --parseDepth 解析依赖包深度,默认值:100
# swag init --parseDependency --parseInternal
# 简写
swag i -pd --parseInternal
```
#### air 热重载
##### 安装
```shell
go install github.com/cosmtrek/air@latest
```
配置文件 .air.toml
## 运行项目
### 热重载
```shell
air
```
### 直接运行
```shell
go run ./main.go
```
### 编译运行
```shell
go build
```
## 所需依赖服务 环境
*建议通过 portainer 部署*
### Portainer
```shell
sudo docker run -d -p 9000:9000 --name portainer --restart always\
-v /var/run/docker.sock:/var/run/docker.sock\
-v /opt/portainer/data:/data\
portainer/portainer-ce
```
### Redis
```yaml
version: '3.4'
services:
redis_master:
container_name: redis-master
image: redis:latest
restart: always
command: /etc/redis/redis.conf --appendonly yes --requirepass "12341234"
ports:
- "6379:6379"
volumes:
- "/opt/redis/data:/data"
- "/opt/redis/redis.conf:/etc/redis/redis.conf"
```
### Mysql
```yaml
version: "3.4"
x-environment: &environment
environment:
- MYSQL_PORT_3306_TCP_ADDR=mysql
- MYSQL_ROOT_HOST=%
- MYSQL_ROOT_PASSWORD=12341234
services:
mysql:
container_name: mysql
image: mysql/mysql-server:8.0
ports:
- "3306:3306"
restart: always
<<: *environment
volumes:
- /opt/mysql/data:/var/lib/mysql
```