diff --git a/vblog/.vscode/settings.json b/vblog/.vscode/settings.json index 0c2467b..656a7b0 100644 --- a/vblog/.vscode/settings.json +++ b/vblog/.vscode/settings.json @@ -1,3 +1,5 @@ { - "go.testEnvFile": "${workspaceFolder}/etc/test.env", + "go.testEnvVars": { + "WORKSPACE_DIR": "${workspaceFolder}" + } } \ No newline at end of file diff --git a/vblog/README.md b/vblog/README.md index 5bacb55..a2a101c 100644 --- a/vblog/README.md +++ b/vblog/README.md @@ -183,7 +183,7 @@ func (u *UserServiceImpl) Registry(ctx context.Context, in *user.RegistryRequest } ``` -### 接口层 +### API接口层 Gin ```go @@ -242,4 +242,16 @@ func (h *TokenApiHandler) RevolkToken(ctx *gin.Context) { } response.Success(ctx, ins) } -``` \ No newline at end of file +``` + +### 组装程序 + +怎么做开发显得专业 + + +### 中间件鉴权 + + +### ioc优化 + + diff --git a/vblog/apps/blog/api/api.go b/vblog/apps/blog/api/api.go index 1e68e7d..908c2f3 100644 --- a/vblog/apps/blog/api/api.go +++ b/vblog/apps/blog/api/api.go @@ -4,12 +4,27 @@ import ( "github.com/gin-gonic/gin" "github.com/infraboard/mcube/v2/http/gin/response" "gitlab.com/go-course-project/go17/vblog/apps/blog" + "gitlab.com/go-course-project/go17/vblog/apps/blog/impl" ) +func NewBlogApiHandler() *BlogApiHandler { + return &BlogApiHandler{ + blog: impl.BlogService, + } +} + type BlogApiHandler struct { blog blog.Service } +// 提供注册功能, 提供一个Group +// book := server.Group("/api/tokens") +func (h *BlogApiHandler) Registry(r *gin.Engine) { + router := r.Group("/api/blogs") + router.POST("", h.CreateBlog) + router.GET("", h.QueryBlog) +} + // BODY func (h *BlogApiHandler) CreateBlog(ctx *gin.Context) { in := &blog.CreateBlogRequest{} diff --git a/vblog/apps/blog/model_test.go b/vblog/apps/blog/model_test.go index 9172f03..f73ae57 100644 --- a/vblog/apps/blog/model_test.go +++ b/vblog/apps/blog/model_test.go @@ -5,7 +5,7 @@ import ( "github.com/infraboard/mcube/v2/ioc/config/datasource" "gitlab.com/go-course-project/go17/vblog/apps/blog" - "gitlab.com/go-course-project/go17/vblog/test" + "gitlab.com/go-course-project/go17/vblog/config" ) func TestMigrate(t *testing.T) { @@ -16,5 +16,5 @@ func TestMigrate(t *testing.T) { } func init() { - test.DevelopmentSetup() + config.LoadConfig() } diff --git a/vblog/apps/token/model_test.go b/vblog/apps/token/model_test.go index a5260ee..4c08c0d 100644 --- a/vblog/apps/token/model_test.go +++ b/vblog/apps/token/model_test.go @@ -5,7 +5,7 @@ import ( "github.com/infraboard/mcube/v2/ioc/config/datasource" "gitlab.com/go-course-project/go17/vblog/apps/token" - "gitlab.com/go-course-project/go17/vblog/test" + "gitlab.com/go-course-project/go17/vblog/config" ) func TestMigrate(t *testing.T) { @@ -16,5 +16,5 @@ func TestMigrate(t *testing.T) { } func init() { - test.DevelopmentSetup() + config.LoadConfig() } diff --git a/vblog/apps/user/model_test.go b/vblog/apps/user/model_test.go index cc13700..f327692 100644 --- a/vblog/apps/user/model_test.go +++ b/vblog/apps/user/model_test.go @@ -5,7 +5,7 @@ import ( "github.com/infraboard/mcube/v2/ioc/config/datasource" "gitlab.com/go-course-project/go17/vblog/apps/user" - "gitlab.com/go-course-project/go17/vblog/test" + "gitlab.com/go-course-project/go17/vblog/config" ) func TestMigrate(t *testing.T) { @@ -16,5 +16,5 @@ func TestMigrate(t *testing.T) { } func init() { - test.DevelopmentSetup() + config.LoadConfig() } diff --git a/vblog/test/README.md b/vblog/config/README.md similarity index 100% rename from vblog/test/README.md rename to vblog/config/README.md diff --git a/vblog/test/setup.go b/vblog/config/setup.go similarity index 55% rename from vblog/test/setup.go rename to vblog/config/setup.go index d288c17..fd598fd 100644 --- a/vblog/test/setup.go +++ b/vblog/config/setup.go @@ -1,4 +1,4 @@ -package test +package config import ( "os" @@ -6,12 +6,18 @@ import ( "github.com/infraboard/mcube/v2/ioc" ) -func DevelopmentSetup() { +func LoadConfig() { // 配置单元单元测试的配置, application.toml req := ioc.NewLoadConfigRequest() req.ConfigFile.Enabled = true // 必须配置绝对逻辑, {Workspace} - req.ConfigFile.Path = os.Getenv("WORKSPACE_DIR") + "/etc/application.toml" + workspaceDir := os.Getenv("WORKSPACE_DIR") + if workspaceDir == "" { + req.ConfigFile.Path = "etc/application.toml" + } else { + req.ConfigFile.Path = workspaceDir + "/etc/application.toml" + } + err := ioc.ConfigIocObject(req) if err != nil { panic(err) diff --git a/vblog/docs/dev_flow.drawio b/vblog/docs/dev_flow.drawio new file mode 100644 index 0000000..688e61c --- /dev/null +++ b/vblog/docs/dev_flow.drawio @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vblog/etc/application.toml b/vblog/etc/application.toml index d40f4fb..160de84 100644 --- a/vblog/etc/application.toml +++ b/vblog/etc/application.toml @@ -2,7 +2,7 @@ # HTTP服务Host host = "127.0.0.1" # HTTP服务端口 - port = 8010 + port = 8080 [datasource] provider = "mysql" diff --git a/vblog/main.go b/vblog/main.go new file mode 100644 index 0000000..990e04b --- /dev/null +++ b/vblog/main.go @@ -0,0 +1,27 @@ +package main + +import ( + "log" + + "github.com/gin-gonic/gin" + "github.com/infraboard/mcube/v2/ioc/config/http" + blogApi "gitlab.com/go-course-project/go17/vblog/apps/blog/api" + tokenApi "gitlab.com/go-course-project/go17/vblog/apps/token/api" + "gitlab.com/go-course-project/go17/vblog/config" +) + +func main() { + config.LoadConfig() + + // gin Engine, 它包装了http server + server := gin.Default() + + // 注册业务模块的路有 + tokenApi.NewTokenApiHandler().Registry(server) + blogApi.NewBlogApiHandler().Registry(server) + + // 服务器启动 + if err := server.Run(http.Get().Addr()); err != nil { + log.Println(err) + } +}