diff --git a/go.mod b/go.mod index 09b7df17b984864b53f974d2840ad2d95df4925c..a648948d3898f7f46266a7bfe162c15b7059378d 100644 --- a/go.mod +++ b/go.mod @@ -22,6 +22,7 @@ require ( github.com/onsi/ginkgo v1.10.2 // indirect github.com/onsi/gomega v1.7.0 // indirect github.com/sirupsen/logrus v1.4.2 + github.com/spf13/cast v1.3.1 github.com/spf13/pflag v1.0.5 github.com/tealeg/xlsx v1.0.5 // indirect github.com/vulcand/oxy v1.0.0 diff --git a/go.sum b/go.sum index 57ebcd26c9a9ab09dac48a0afa49f1e36bef8427..43803b1af477d1254c20f3f8b5e8a7064671160f 100644 --- a/go.sum +++ b/go.sum @@ -143,6 +143,8 @@ github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqn github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= +github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= diff --git a/src/handler/proxyhandler.go b/src/handler/proxyhandler.go index 4616dc65dfebe0a93bf688f9f98851ff96af520a..62c599a8fb73e9b0e307e10bcbd01b70d8a3c19c 100644 --- a/src/handler/proxyhandler.go +++ b/src/handler/proxyhandler.go @@ -32,8 +32,9 @@ func Proxy(c *gin.Context) { c.JSON(200, res) return } + apiId := c.Param("apiid") //获取服务相关信息 - proxyData, err := service.GetRealPath(applyId) + proxyData, err := service.GetRealPath(applyId, apiId) if err != nil { fmt.Println("err......", err.Error()) diff --git a/src/router/router.go b/src/router/router.go index 61f498a3f821e0d1df13b0e022880b0ac61d862a..3373f9708ac4f72bf269dc88b2324a1c0a7d403d 100644 --- a/src/router/router.go +++ b/src/router/router.go @@ -34,6 +34,7 @@ func Load(middleware ...gin.HandlerFunc) http.Handler { { root.GET("/health", handler.HealthCheck) root.Any("/service/:applyId", handler.Proxy) + root.Any("/service/:applyId/:apiid", handler.Proxy) } return e } diff --git a/src/service/field.go b/src/service/field.go index b6a5cff90ace652b91fcebef2c3bad15efe95322..29f33761f11d64731450ffbf582867aac394eb51 100644 --- a/src/service/field.go +++ b/src/service/field.go @@ -11,6 +11,7 @@ import ( "encoding/json" "errors" "fmt" + "github.com/spf13/cast" "gitlab.wodcloud.com/apaas/apaas-meshproxy/src/client" "gitlab.wodcloud.com/apaas/apaas-meshproxy/src/config" "gitlab.wodcloud.com/apaas/apaas-meshproxy/src/dao" @@ -431,10 +432,14 @@ func FilterSensituveField(model interface{}, returnData interface{}) (body inter } // 获取真实地址和返回结构、调用限定次数 -func GetRealPath(applyId string) (res model.ProxyData, err error) { +func GetRealPath(applyId, apiId string) (res model.ProxyData, err error) { db, err := client.GetConnect() if err != nil { return + } + apiid := cast.ToInt64(apiId) + if apiid == 0 { + } has, err := db. Select(`service_apply.res_fields as res_fields,service.req_url as req_url,service_request_spcs.count as count,service_safe_config.sensituve_word as sensituve_word