Skip to content

Commit

Permalink
纯工具模式完成
Browse files Browse the repository at this point in the history
  • Loading branch information
陈壁浩 committed Jul 20, 2024
1 parent c84ae1c commit f37f691
Show file tree
Hide file tree
Showing 23 changed files with 780 additions and 673 deletions.
48 changes: 42 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
- 前后端协同:前后端协同开发
- 命令行工具:有充分的命令行工具
- 定时服务:提供命令进行定时服务的启动
- 文档丰富:提供丰富的文档说明,提供丰富的文档说明
- 文档丰富:提供丰富的文档说明
- 开发模式:在开发模式下进行前后端开发,极大提高了开发效率和开发体验

### 使用指南
## 使用指南

已集成初始化脚手架,可通过以下命令在本地构建应用:

Expand All @@ -26,14 +26,50 @@
进入对应的文件夹,使用 `go mod tidy` 安装相关依赖,
随后可以通过引用 `github.com/chenbihao/gob/framework` 来引用框架相关模块

# 计划
## 技术栈

具备 Web 框架的基础能力

- gin v1.9.1
- middleware
- swagger
- vue

## 服务提供者

提供了场景的功能封装提供,例如:

- 配置、缓存、日志、orm、redis、...

详见 [文档-服务提供者](https://chenbihao.github.io/gob/provider/)

## 命令行工具

提供了提效命令工具,例如:

- 创建应用、服务管理、调试模式(热更新)
- 编译构建、部署功能、定时任务
- 拉取中间件、生成代码功能
- ...

详见 [文档-提供命令](https://chenbihao.github.io/gob/command/)

## 蓝图

Todo...

计划实现“蓝图”功能。

一个快速开发应用模板拉取的功能,框架将提供一些方便的“蓝图”,例如后台管理蓝图、权限蓝图、博客蓝图等。

用户拉取“蓝图”后,框架通过数据库版本管理能力,快速搭建起一个具备基础能力的服务。

## 计划

[Todo 列表](docs/src/guide/TODO.md)

# author
## 更多

有任何问题可直接 github 留言,或者联系作者。

# 更多

本框架是作者在学习手写web框架后的产物,计划持续开发并作为开发项目用的脚手架。
38 changes: 0 additions & 38 deletions app/console/kernel.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,47 +2,9 @@ package console

import (
"github.com/chenbihao/gob/app/console/command/demo"
"github.com/chenbihao/gob/framework"
"github.com/chenbihao/gob/framework/cobra"
"github.com/chenbihao/gob/framework/command"
)

// RunRootCommand 初始化根Command并运行
func RunRootCommand(container framework.Container, onlyNewCommand bool) error {
// 根Command
var rootCmd = &cobra.Command{
// 定义根命令的关键字
Use: "gob",
// 简短介绍
Short: "gob 命令",
// 根命令的详细介绍
Long: "gob 框架提供的命令行工具,使用这个命令行工具能很方便执行框架自带命令,也能很方便编写业务命令",
// 根命令的执行函数
RunE: func(cmd *cobra.Command, args []string) error {
cmd.InitDefaultHelpFlag()
return cmd.Help()
},
// 不需要出现cobra默认的completion子命令
CompletionOptions: cobra.CompletionOptions{DisableDefaultCmd: true},
}

// 为根Command设置服务容器
rootCmd.SetContainer(container)

if onlyNewCommand {
// 如果仅作为脚手架使用的化,只添加new命令
command.AddNewCommands(rootCmd)
} else {
// 绑定框架的命令定义 (框架定义的命令我们使用`framework/command/kernel.go` 中的 `AddKernelCommands` 进行挂载)
command.AddKernelCommands(rootCmd)
// 绑定业务的命令
AddAppCommand(rootCmd)
}

// 执行RootCommand
return rootCmd.Execute()
}

// 绑定业务的命令(业务定义的命令我们使用 `app/console/kernel.go` 中的 `AddAppCommand`进行挂载)
func AddAppCommand(rootCmd *cobra.Command) {
// demo 例子
Expand Down
2 changes: 1 addition & 1 deletion app/http/module/demo/api_orm.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ func (api *DemoApi) DemoOrm(c *gin.Context) {
}
err = db.Create(user).Error
logger.Info(c, "insert user", map[string]interface{}{
"id": user.ID,
"err": err,
"id": user.ID,
})

// 更新一条数据
Expand Down
4 changes: 2 additions & 2 deletions app/http/route.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ func Routes(r *gin.Engine) {
container := r.GetContainer()
configService := container.MustMake(contract.ConfigKey).(contract.Config)

// /路径先去./dist目录下查找文件是否存在,找到使用文件服务提供服务
// `/` 路径先去 `./dist` 目录下查找文件是否存在,找到使用文件服务提供服务
r.Use(static.Serve("/", static.LocalFile("./gob_frontend/dist", false)))

// 使用全链路追踪
Expand All @@ -33,7 +33,7 @@ func Routes(r *gin.Engine) {
r.Use(gzip.Gzip(gzip.BestSpeed))

// 如果配置了swagger,则显示swagger的中间件
if configService.GetBool("app.swagger") == true {
if configService.GetBool("app.swagger") {
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
}

Expand Down
Loading

0 comments on commit f37f691

Please sign in to comment.