consul.go包引用
This commit is contained in:
33
http/http.go
33
http/http.go
@@ -9,7 +9,6 @@ import (
|
|||||||
"gitee.com/red-future---jilin-g/common/utils"
|
"gitee.com/red-future---jilin-g/common/utils"
|
||||||
"github.com/gogf/gf/contrib/registry/consul/v2"
|
"github.com/gogf/gf/contrib/registry/consul/v2"
|
||||||
"github.com/gogf/gf/v2/frame/g"
|
"github.com/gogf/gf/v2/frame/g"
|
||||||
"github.com/gogf/gf/v2/net/gclient"
|
|
||||||
"github.com/gogf/gf/v2/net/ghttp"
|
"github.com/gogf/gf/v2/net/ghttp"
|
||||||
"github.com/gogf/gf/v2/net/gsel"
|
"github.com/gogf/gf/v2/net/gsel"
|
||||||
"github.com/gogf/gf/v2/net/gsvc"
|
"github.com/gogf/gf/v2/net/gsvc"
|
||||||
@@ -33,6 +32,7 @@ type Page struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var Httpserver = g.Server()
|
var Httpserver = g.Server()
|
||||||
|
var Httpclient = g.Client()
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
//s.Use(common.Cors) //中间件验证
|
//s.Use(common.Cors) //中间件验证
|
||||||
@@ -42,6 +42,17 @@ func init() {
|
|||||||
Httpserver.SetDumpRouterMap(true) //关闭打印路由注册信息
|
Httpserver.SetDumpRouterMap(true) //关闭打印路由注册信息
|
||||||
Httpserver.BindMiddlewareDefault(ghttp.MiddlewareHandlerResponse, jaeger.NewTracer) //使用默认http返回结构
|
Httpserver.BindMiddlewareDefault(ghttp.MiddlewareHandlerResponse, jaeger.NewTracer) //使用默认http返回结构
|
||||||
go Httpserver.Run()
|
go Httpserver.Run()
|
||||||
|
|
||||||
|
consulCfg, _ := g.Cfg().Get(context.Background(), "consul.address")
|
||||||
|
consulAddr := consulCfg.String()
|
||||||
|
registry, err := consul.New(consul.WithAddress(consulAddr))
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
gsvc.SetRegistry(registry)
|
||||||
|
gsel.SetBuilder(gsel.NewBuilderRoundRobin())
|
||||||
|
Httpclient.SetHeader("Authorization", g.RequestFromCtx(context.TODO()).GetHeader("Authorization"))
|
||||||
|
Httpclient.SetDiscovery(gsvc.GetRegistry())
|
||||||
}
|
}
|
||||||
func RouteRegister(controllers []interface{}) {
|
func RouteRegister(controllers []interface{}) {
|
||||||
re := regexp.MustCompile("[A-Z]")
|
re := regexp.MustCompile("[A-Z]")
|
||||||
@@ -55,30 +66,12 @@ func RouteRegister(controllers []interface{}) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func getHttpClient(ctx context.Context) (client *gclient.Client, err error) {
|
|
||||||
consulCfg, _ := g.Cfg().Get(context.Background(), "consul.address")
|
|
||||||
consulAddr := consulCfg.String()
|
|
||||||
registry, err := consul.New(consul.WithAddress(consulAddr))
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
gsvc.SetRegistry(registry)
|
|
||||||
gsel.SetBuilder(gsel.NewBuilderRoundRobin())
|
|
||||||
client = g.Client()
|
|
||||||
client.SetHeader("Authorization", g.RequestFromCtx(ctx).GetHeader("Authorization"))
|
|
||||||
client.SetDiscovery(gsvc.GetRegistry())
|
|
||||||
return
|
|
||||||
}
|
|
||||||
func doRequest(ctx context.Context, method string, url string, target any, data ...any) (err error) {
|
func doRequest(ctx context.Context, method string, url string, target any, data ...any) (err error) {
|
||||||
err = utils.ValidStructPtr(target)
|
err = utils.ValidStructPtr(target)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
client, err := getHttpClient(ctx)
|
response, err := Httpclient.DoRequest(ctx, method, url, data)
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
response, err := client.DoRequest(ctx, method, url, data)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user