Browse Source

添加mock接口

yjp 3 tuần trước cách đây
mục cha
commit
d81226d79b

+ 2 - 0
README.md

@@ -7,3 +7,5 @@ gateway/gw: 网关,默认端口10000
 gateway/sagagw: saga网关,默认端口10001
 
 utm: 简化版用户管理服务,默认端口10002
+
+mock: 开发中需要调用的其他服务的接口可以在这里制造mock接口,默认端口10003

+ 65 - 0
mock/application/application.go

@@ -0,0 +1,65 @@
+package application
+
+import (
+	"baize_scaffold/mock/application/service"
+	"baize_scaffold/mock/config"
+
+	"git.sxidc.com/go-framework/baize"
+	"git.sxidc.com/go-framework/baize/framework/core/application"
+)
+
+var appInstance *application.App
+
+func NewApp() {
+	if appInstance != nil {
+		return
+	}
+
+	appInstance = baize.NewApplication(config.GetConfig().ApplicationConfig)
+
+	// 注册Router
+	appInstance.Api().PrefixRouter().RegisterVersionedRouter("v1")
+}
+
+func DestroyApp() {
+	if appInstance == nil {
+		return
+	}
+
+	baize.DestroyApplication(appInstance)
+	appInstance = nil
+}
+
+func Start() error {
+	// 初始化服务
+	for _, svc := range service.RegisteredServices {
+		err := svc.Init(appInstance)
+		if err != nil {
+			return err
+		}
+	}
+
+	err := appInstance.Start()
+	if err != nil {
+		return err
+	}
+
+	return nil
+}
+
+func Finish() error {
+	err := appInstance.Finish()
+	if err != nil {
+		return err
+	}
+
+	// 销毁服务
+	for _, svc := range service.RegisteredServices {
+		err := svc.Destroy()
+		if err != nil {
+			return err
+		}
+	}
+
+	return nil
+}

+ 22 - 0
mock/application/service/mock.go

@@ -0,0 +1,22 @@
+package service
+
+import (
+	"git.sxidc.com/go-framework/baize/framework/core/application"
+)
+
+var mockService = &MockService{}
+
+type MockService struct{}
+
+func (svc *MockService) Init(appInstance *application.App) error {
+	svc.v1(appInstance)
+	return nil
+}
+
+func (svc *MockService) Destroy() error {
+	return nil
+}
+
+func (svc *MockService) v1(appInstance *application.App) {
+	//v1Binder := binding.NewBinder(appInstance.ChooseRouter(api.RouterPrefix, "v1"), nil)
+}

+ 12 - 0
mock/application/service/service.go

@@ -0,0 +1,12 @@
+package service
+
+import "git.sxidc.com/go-framework/baize/framework/core/application"
+
+type Service interface {
+	Init(appInstance *application.App) error
+	Destroy() error
+}
+
+var RegisteredServices = []Service{
+	mockService,
+}

+ 30 - 0
mock/config/config.go

@@ -0,0 +1,30 @@
+package config
+
+import (
+	"fmt"
+	"os"
+
+	"git.sxidc.com/go-framework/baize/framework/core/application"
+)
+
+type Config struct {
+	ApplicationConfig application.Config
+}
+
+var conf Config
+
+func init() {
+	configFilePath := os.Getenv("CONFIG_FILE_PATH")
+	applicationConfig, err := application.LoadFromYamlFile(configFilePath)
+	if err != nil {
+		panic(err)
+	}
+
+	conf.ApplicationConfig = applicationConfig
+
+	fmt.Println("Load config file finish")
+}
+
+func GetConfig() Config {
+	return conf
+}

+ 3 - 0
mock/deployment/config/config.yaml

@@ -0,0 +1,3 @@
+api:
+  url_prefix: /mock/api
+  port: 10003

+ 30 - 0
mock/main.go

@@ -0,0 +1,30 @@
+package main
+
+import (
+	"baize_scaffold/mock/application"
+	"syscall"
+
+	DEATH "github.com/vrecan/death"
+)
+
+func main() {
+	application.NewApp()
+	defer application.DestroyApp()
+
+	go func() {
+		err := application.Start()
+		if err != nil {
+			panic(err)
+		}
+	}()
+
+	defer func() {
+		err := application.Finish()
+		if err != nil {
+			panic(err)
+		}
+	}()
+
+	death := DEATH.NewDeath(syscall.SIGINT, syscall.SIGTERM)
+	_ = death.WaitForDeath()
+}