fix doc
This commit is contained in:
103
README.md
103
README.md
@@ -1,4 +1,6 @@
|
|||||||
# ATOM
|
# ATOM
|
||||||
|
[快速开始](#快速开始)
|
||||||
|
[工具使用](#工具使用)
|
||||||
|
|
||||||
## 框架介绍
|
## 框架介绍
|
||||||
### 技术栈
|
### 技术栈
|
||||||
@@ -18,17 +20,17 @@
|
|||||||
|
|
||||||
#### 工具使用
|
#### 工具使用
|
||||||
- gen 生成类功能
|
- gen 生成类功能
|
||||||
- [crud](#gen:curd) 生成crud模板
|
- [crud](#gencurd) 生成crud模板
|
||||||
- [routes](#gen:routes) 生成业务路由
|
- [routes](#genroutes) 生成业务路由
|
||||||
- new 创建类功能
|
- new 创建类功能
|
||||||
- [controller](#new:controller) 创建controller
|
- [controller](#newcontroller) 创建controller
|
||||||
- [service](#new:service) 创建 service
|
- [service](#newservice) 创建 service
|
||||||
- [dao](#new:dao) 创建 dao 文件
|
- [dao](#newdao) 创建 dao 文件
|
||||||
- [migration](#new:migration) 创建 migration
|
- [migration](#newmigration) 创建 migration
|
||||||
- [seeder](#new:seeder) 创建填充数据 seeder
|
- [seeder](#newseeder) 创建填充数据 seeder
|
||||||
- [http](#new:http) 创建 http 项目
|
- [http](#newhttp) 创建 http 项目
|
||||||
- [module](#new:module) 创建 http module
|
- [module](#newmodule) 创建 http module
|
||||||
- [suite](#new:suite) 创建测试用例文件
|
- [suite](#newsuite) 创建测试用例文件
|
||||||
|
|
||||||
##### gen:curd
|
##### gen:curd
|
||||||
atomctl gen crud [表名] [module]
|
atomctl gen crud [表名] [module]
|
||||||
@@ -92,17 +94,16 @@ module/
|
|||||||
下面将会创建一个用户管理应用示例程序
|
下面将会创建一个用户管理应用示例程序
|
||||||
|
|
||||||
1. 创建项目 atom-project
|
1. 创建项目 atom-project
|
||||||
```
|
|
||||||
atomctl new http atom/http atom-project
|
|
||||||
cd atom-project
|
|
||||||
go mod tidy
|
|
||||||
```
|
|
||||||
2. 添加 user module
|
|
||||||
```
|
|
||||||
atomctl new module users
|
|
||||||
|
|
||||||
# 生成目录 modules/users
|
atomctl new http atom/http atom-project
|
||||||
```
|
cd atom-project
|
||||||
|
go mod tidy
|
||||||
|
|
||||||
|
2. 添加 user module
|
||||||
|
|
||||||
|
atomctl new module users
|
||||||
|
|
||||||
|
生成目录 modules/users
|
||||||
3. 配置项目启动需要的 providers
|
3. 配置项目启动需要的 providers
|
||||||
打开入口文件 `main.go`。下面我们需要4个基本的provider
|
打开入口文件 `main.go`。下面我们需要4个基本的provider
|
||||||
- sqlite 数据库
|
- sqlite 数据库
|
||||||
@@ -170,7 +171,10 @@ module/
|
|||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
5. 执行 `go mod tidy`
|
5. 执行
|
||||||
|
|
||||||
|
go mod tidy
|
||||||
|
|
||||||
6. 添加 migration
|
6. 添加 migration
|
||||||
```
|
```
|
||||||
atomctl new migration create_user
|
atomctl new migration create_user
|
||||||
@@ -197,7 +201,7 @@ module/
|
|||||||
```
|
```
|
||||||
2023/06/15 17:50:54 load config file: : config file read error: Config File "http.toml" Not Found in "[/Users/rogee /Users/rogee/http /Users/rogee/.config /Users/rogee/.config/http /etc /etc/http /usr/local/etc /usr/local/etc/http]"
|
2023/06/15 17:50:54 load config file: : config file read error: Config File "http.toml" Not Found in "[/Users/rogee /Users/rogee/http /Users/rogee/.config /Users/rogee/.config/http /etc /etc/http /usr/local/etc /usr/local/etc/http]"
|
||||||
```
|
```
|
||||||
把项目目录中的配置文件转移到项目目录中去
|
把项目目录中的配置文件转移到配置文件查找目录中去
|
||||||
```
|
```
|
||||||
ln -s $PWD/config.toml ~/.config/http.toml
|
ln -s $PWD/config.toml ~/.config/http.toml
|
||||||
```
|
```
|
||||||
@@ -206,21 +210,17 @@ module/
|
|||||||
2023/06/15 17:53:12 config file: /Users/rogee/.config/http.toml
|
2023/06/15 17:53:12 config file: /Users/rogee/.config/http.toml
|
||||||
2023/06/15 17:53:12 BINGO! migrate up done
|
2023/06/15 17:53:12 BINGO! migrate up done
|
||||||
```
|
```
|
||||||
此时会在项目根目录下看到 `sqlite.db` 文件, 打开文件可见包信2个表,migrations 和 users, migrations 是已执行migration的id有序记录
|
此时会在项目根目录下看到 `sqlite.db` 文件
|
||||||
```
|
|
||||||
sqlite3 sqlite.db
|
|
||||||
SQLite version 3.39.4 2022-09-07 20:51:41
|
|
||||||
Enter ".help" for usage hints.
|
|
||||||
sqlite> .tables
|
|
||||||
migrations users
|
|
||||||
```
|
|
||||||
9. 生成model
|
9. 生成model
|
||||||
go run . model
|
|
||||||
|
go run . model
|
||||||
|
|
||||||
model 会在新表添加后再次执行生成,所以不要编辑任何 `database/models`下的文件内容
|
model 会在新表添加后再次执行生成,所以不要编辑任何 `database/models`下的文件内容
|
||||||
|
|
||||||
9. 添加假数据
|
9. 添加假数据
|
||||||
atomctl new seeder User
|
|
||||||
|
atomctl new seeder User
|
||||||
|
|
||||||
> 注意User是单数,表示 model.User 区别于数据库表名
|
> 注意User是单数,表示 model.User 区别于数据库表名
|
||||||
|
|
||||||
编辑文件 `database/seeders/users.go`
|
编辑文件 `database/seeders/users.go`
|
||||||
@@ -242,7 +242,9 @@ module/
|
|||||||
```
|
```
|
||||||
运行 `go run . seed `, 些时 users 表会被写入10条随机数据
|
运行 `go run . seed `, 些时 users 表会被写入10条随机数据
|
||||||
10. 添加 crud
|
10. 添加 crud
|
||||||
atomctl gen crud users users
|
|
||||||
|
atomctl gen crud users users
|
||||||
|
|
||||||
两个users第一个为crud的名称,第二个为模块名称,执行输出如下
|
两个users第一个为crud的名称,第二个为模块名称,执行输出如下
|
||||||
```
|
```
|
||||||
2023/06/15 18:06:42 generate: modules/users/service/users.go
|
2023/06/15 18:06:42 generate: modules/users/service/users.go
|
||||||
@@ -253,7 +255,9 @@ module/
|
|||||||
2023/06/15 18:06:42 REMEMBER TO ADD NEW PROVIDERS
|
2023/06/15 18:06:42 REMEMBER TO ADD NEW PROVIDERS
|
||||||
```
|
```
|
||||||
11. 生成 api
|
11. 生成 api
|
||||||
atomctl gen routes
|
|
||||||
|
atomctl gen routes
|
||||||
|
|
||||||
输出如下
|
输出如下
|
||||||
```
|
```
|
||||||
2023/06/15 18:07:43 route path: /Users/rogee/tmp/atom-project
|
2023/06/15 18:07:43 route path: /Users/rogee/tmp/atom-project
|
||||||
@@ -261,39 +265,10 @@ module/
|
|||||||
2023/06/15 18:07:43 generate routes for dir
|
2023/06/15 18:07:43 generate routes for dir
|
||||||
2023/06/15 18:07:43 generate route: /Users/rogee/tmp/atom-project/modules/users/routes/route_user_controller.go @ routeUserController(group, userController)
|
2023/06/15 18:07:43 generate route: /Users/rogee/tmp/atom-project/modules/users/routes/route_user_controller.go @ routeUserController(group, userController)
|
||||||
```
|
```
|
||||||
把文件后的提示方法写到 `modules/users/routes/routes.go`, 些时新建的 route provider 还没有注入 userController ,我们手动添加进去,编辑后的文件内容如下:
|
|
||||||
```
|
|
||||||
func newRoute(svc http.Service, userController *controller.UserController) http.Route {
|
|
||||||
engine := svc.GetEngine().(*gin.Engine)
|
|
||||||
group := engine.Group("users")
|
|
||||||
log.Info("register route group: %s", group)
|
|
||||||
|
|
||||||
routeUserController(group, userController)
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
13. 注册服务
|
|
||||||
```
|
|
||||||
modules/users/
|
|
||||||
controller/ provider.go
|
|
||||||
dao/provider.go
|
|
||||||
service/provider.go
|
|
||||||
provider.go
|
|
||||||
```
|
|
||||||
注册crud provider对象
|
|
||||||
内容类似
|
|
||||||
```
|
|
||||||
func Provide(opts ...opt.Option) error {
|
|
||||||
_ = container.Container.Provide(NewUserController)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
```
|
|
||||||
12. 运行项目
|
12. 运行项目
|
||||||
```
|
```
|
||||||
go generate ./...
|
go generate ./...
|
||||||
go run .
|
go run .
|
||||||
```
|
```
|
||||||
13. 访问
|
13. 访问
|
||||||
1. [localhost:9800/doc/index.html](localhost:9800/doc/index.html)
|
[localhost:9800/doc/index.html](localhost:9800/doc/index.html)
|
||||||
Reference in New Issue
Block a user