Skip to content

Commit

Permalink
Pull out third-party service references
Browse files Browse the repository at this point in the history
  • Loading branch information
abericyang@gmail.com committed May 15, 2019
1 parent f837026 commit 7100dd7
Show file tree
Hide file tree
Showing 15 changed files with 294 additions and 111 deletions.
6 changes: 3 additions & 3 deletions bow/bow.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,12 +91,12 @@ func (s *Bow) register(routeService *RouteService) {
}

// RunBow 开启路由
func RunBow(context *gin.Context, serviceName string, filter func(context *gin.Context, result *response.Result) bool) {
func RunBow(context *gin.Context, serviceName string, filter func(result *response.Result) bool) {
RunBowCallback(context, serviceName, filter, nil)
}

// RunBowCallback 开启路由并处理降级
func RunBowCallback(context *gin.Context, serviceName string, filter func(context *gin.Context, result *response.Result) bool, f func() *response.Result) {
func RunBowCallback(context *gin.Context, serviceName string, filter func(result *response.Result) bool, f func() *response.Result) {
routeService, ok := instance.AllWay[serviceName]
result := response.Result{}
if !ok {
Expand All @@ -106,7 +106,7 @@ func RunBowCallback(context *gin.Context, serviceName string, filter func(contex
context.JSON(http.StatusOK, result)
return
}
if !filter(context, &result) {
if !filter(&result) {
context.JSON(http.StatusOK, result)
return
}
Expand Down
2 changes: 1 addition & 1 deletion bow/bow_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import (
)

// Route 网关服务路由
func Route(engine *gin.Engine, filter func(context *gin.Context, result *response.Result) bool) {
func Route(engine *gin.Engine, filter func(result *response.Result) bool) {
// 仓库相关路由设置
vRepo := engine.Group("/")
for x := range routeServices {
Expand Down
3 changes: 1 addition & 2 deletions examples/bow1/bow1.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,12 @@ import (
"github.com/ennoo/rivet/rivet"
"github.com/ennoo/rivet/trans/response"
"github.com/ennoo/rivet/utils/env"
"github.com/gin-gonic/gin"
"strings"
)

func main() {
rivet.Initialize(false, true, false)
rivet.UseBow(func(context *gin.Context, result *response.Result) bool {
rivet.UseBow(func(result *response.Result) bool {
result.Fail("test fail")
return false
})
Expand Down
3 changes: 1 addition & 2 deletions examples/bow2/bow2.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,12 @@ import (
"github.com/ennoo/rivet/rivet"
"github.com/ennoo/rivet/trans/response"
"github.com/ennoo/rivet/utils/env"
"github.com/gin-gonic/gin"
"strings"
)

func main() {
rivet.Initialize(false, true, false)
rivet.UseBow(func(context *gin.Context, result *response.Result) bool {
rivet.UseBow(func(result *response.Result) bool {
return true
})
rivet.Bow().Add(
Expand Down
21 changes: 10 additions & 11 deletions examples/shunt1/shunt1.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import (
"github.com/ennoo/rivet/rivet"
"github.com/ennoo/rivet/shunt"
"github.com/ennoo/rivet/trans/response"
"github.com/gin-gonic/gin"
"net/http"
)

Expand All @@ -46,23 +45,23 @@ func main() {
})
}

func testShunt1(engine *gin.Engine) {
func testShunt1(router *response.Router) {
// 仓库相关路由设置
vRepo := engine.Group("/rivet")
vRepo.GET("/shunt/:serviceName", shunt3)
vRepo.POST("/shunt", shunt4)
router.Group = router.Engine.Group("/rivet")
router.GET("/shunt/:serviceName", shunt3)
router.POST("/shunt", shunt4)
}

func shunt3(context *gin.Context) {
rivet.Response().Do(context, func(result *response.Result) {
serviceName := context.Param("serviceName")
func shunt3(router *response.Router) {
rivet.Response().Do(router.Context, func(result *response.Result) {
serviceName := router.Context.Param("serviceName")
rivet.Shunt().Register(serviceName, shunt.Round)
result.SaySuccess(context, "test2")
result.SaySuccess(router.Context, "test2")
})
}

func shunt4(context *gin.Context) {
rivet.Request().Callback(context, http.MethodPost, "test", "rivet/shunt", func() *response.Result {
func shunt4(router *response.Router) {
rivet.Request().Callback(router.Context, http.MethodPost, "test", "rivet/shunt", func() *response.Result {
return &response.Result{ResultCode: response.Success, Msg: "降级处理"}
})
}
39 changes: 19 additions & 20 deletions examples/trans1/trans1.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import (
"github.com/ennoo/rivet/trans/response"
"github.com/ennoo/rivet/utils/ip"
"github.com/ennoo/rivet/utils/slip"
"github.com/gin-gonic/gin"
"net/http"
)

Expand All @@ -37,40 +36,40 @@ func main() {
})
}

func testRouter1(engine *gin.Engine) {
func testRouter1(router *response.Router) {
// 仓库相关路由设置
vRepo := engine.Group("/rivet")
vRepo.GET("/get", shunt1get1)
vRepo.POST("/post", shunt1post1)
vRepo.POST("/post2", shunt1post2)
vRepo.POST("/shunt", shunt1)
router.Group = router.Engine.Group("/rivet")
router.GET("/get", shunt1get1)
router.POST("/post", shunt1post1)
router.POST("/post2", shunt1post2)
router.POST("/shunt", shunt1)
}

func shunt1get1(context *gin.Context) {
rivet.Request().Call(context, http.MethodGet, "http://localhost:8082", "rivet/get")
func shunt1get1(router *response.Router) {
rivet.Request().Call(router.Context, http.MethodGet, "http://localhost:8082", "rivet/get")
}

func shunt1post1(context *gin.Context) {
fmt.Println("ip = ", ip.Get(context.Request))
rivet.Request().Callback(context, http.MethodPost, "http://localhost:8082", "rivet/post", func() *response.Result {
func shunt1post1(router *response.Router) {
fmt.Println("ip = ", ip.Get(router.Context.Request))
rivet.Request().Callback(router.Context, http.MethodPost, "http://localhost:8082", "rivet/post", func() *response.Result {
return &response.Result{ResultCode: response.Success, Msg: "降级处理"}
})
}

func shunt1(context *gin.Context) {
rivet.Response().Do(context, func(result *response.Result) {
func shunt1(router *response.Router) {
rivet.Response().Do(router.Context, func(result *response.Result) {
var test = new(model.Test)
if err := context.ShouldBindJSON(test); err != nil {
result.SayFail(context, err.Error())
if err := router.Context.ShouldBindJSON(test); err != nil {
result.SayFail(router.Context, err.Error())
}
test.Name = "trans1"
context.Writer.Header().Add("trans1Token15", "trans1Test15")
context.SetCookie("trans1Token16", "trans1Test16", 10, "/", "localhost", false, true)
result.SaySuccess(context, test)
router.Context.Writer.Header().Add("trans1Token15", "trans1Test15")
router.Context.SetCookie("trans1Token16", "trans1Test16", 10, "/", "localhost", false, true)
result.SaySuccess(router.Context, test)
})
}

func shunt1post2(context *gin.Context) {
func shunt1post2(router *response.Router) {
method := http.MethodGet
remote := "http://127.0.0.1:8500"
uri := "v1/agent/health/service/name/test"
Expand Down
29 changes: 14 additions & 15 deletions examples/trans1/trans_tls1.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import (
"github.com/ennoo/rivet/rivet"
"github.com/ennoo/rivet/trans/response"
"github.com/ennoo/rivet/utils/env"
"github.com/gin-gonic/gin"
"net/http"
"strings"
"time"
Expand All @@ -37,31 +36,31 @@ func main() {
}, strings.Join([]string{env.GetEnv(env.GOPath), "/src/github.com/ennoo/rivet/examples/tls/rootCA.crt"}, ""))
}

func testRouterTLS1(engine *gin.Engine) {
func testRouterTLS1(router *response.Router) {
// 仓库相关路由设置
vRepo := engine.Group("/rivet")
vRepo.GET("/get", getTLS1)
vRepo.POST("/post", postTLS1)
vRepo.POST("/shunt", shuntTLS1)
router.Group = router.Engine.Group("/rivet")
router.GET("/get", getTLS1)
router.POST("/post", postTLS1)
router.POST("/shunt", shuntTLS1)
}

func getTLS1(context *gin.Context) {
rivet.Request().Call(context, http.MethodGet, "https://localhost:8092", "rivet/get")
func getTLS1(router *response.Router) {
rivet.Request().Call(router.Context, http.MethodGet, "https://localhost:8092", "rivet/get")
}

func postTLS1(context *gin.Context) {
rivet.Request().Callback(context, http.MethodPost, "https://localhost:8092", "rivet/post", func() *response.Result {
func postTLS1(router *response.Router) {
rivet.Request().Callback(router.Context, http.MethodPost, "https://localhost:8092", "rivet/post", func() *response.Result {
return &response.Result{ResultCode: response.Success, Msg: "降级处理"}
})
}

func shuntTLS1(context *gin.Context) {
rivet.Response().Do(context, func(result *response.Result) {
func shuntTLS1(router *response.Router) {
rivet.Response().Do(router.Context, func(result *response.Result) {
var test = new(model.Test)
if err := context.ShouldBindJSON(test); err != nil {
result.SayFail(context, err.Error())
if err := router.Context.ShouldBindJSON(test); err != nil {
result.SayFail(router.Context, err.Error())
}
test.Name = "trans1"
result.SaySuccess(context, test)
result.SaySuccess(router.Context, test)
})
}
37 changes: 18 additions & 19 deletions examples/trans2/trans2.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import (
"github.com/ennoo/rivet/examples/model"
"github.com/ennoo/rivet/rivet"
"github.com/ennoo/rivet/trans/response"
"github.com/gin-gonic/gin"
)

func main() {
Expand All @@ -32,37 +31,37 @@ func main() {
})
}

func testRouter2(engine *gin.Engine) {
func testRouter2(router *response.Router) {
// 仓库相关路由设置
vRepo := engine.Group("/rivet")
vRepo.GET("/get", get2)
vRepo.POST("/post", post2)
vRepo.POST("/shunt", shunt2)
router.Group = router.Engine.Group("/rivet")
router.GET("/get", get2)
router.POST("/post", post2)
router.POST("/shunt", shunt2)
}

func get2(context *gin.Context) {
rivet.Response().Do(context, func(result *response.Result) {
result.SaySuccess(context, "get21")
func get2(router *response.Router) {
rivet.Response().Do(router.Context, func(result *response.Result) {
result.SaySuccess(router.Context, "get21")
})
}

func post2(context *gin.Context) {
rivet.Response().Do(context, func(result *response.Result) {
func post2(router *response.Router) {
rivet.Response().Do(router.Context, func(result *response.Result) {
var test = new(model.Test)
if err := context.ShouldBindJSON(test); err != nil {
result.SayFail(context, err.Error())
if err := router.Context.ShouldBindJSON(test); err != nil {
result.SayFail(router.Context, err.Error())
}
result.SaySuccess(context, test)
result.SaySuccess(router.Context, test)
})
}

func shunt2(context *gin.Context) {
rivet.Response().Do(context, func(result *response.Result) {
func shunt2(router *response.Router) {
rivet.Response().Do(router.Context, func(result *response.Result) {
var test = new(model.Test)
if err := context.ShouldBindJSON(test); err != nil {
result.SayFail(context, err.Error())
if err := router.Context.ShouldBindJSON(test); err != nil {
result.SayFail(router.Context, err.Error())
}
test.Name = "trans2"
result.SaySuccess(context, test)
result.SaySuccess(router.Context, test)
})
}
37 changes: 18 additions & 19 deletions examples/trans2/trans_tls2.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import (
"github.com/ennoo/rivet/rivet"
"github.com/ennoo/rivet/trans/response"
"github.com/ennoo/rivet/utils/env"
"github.com/gin-gonic/gin"
"strings"
)

Expand All @@ -34,37 +33,37 @@ func main() {
})
}

func testRouterTLS2(engine *gin.Engine) {
func testRouterTLS2(router *response.Router) {
// 仓库相关路由设置
vRepo := engine.Group("/rivet")
vRepo.GET("/get", getTLS2)
vRepo.POST("/post", postTLS2)
vRepo.POST("/shunt", shuntTLS2)
router.Group = router.Engine.Group("/rivet")
router.GET("/get", getTLS2)
router.POST("/post", postTLS2)
router.POST("/shunt", shuntTLS2)
}

func getTLS2(context *gin.Context) {
rivet.Response().Do(context, func(result *response.Result) {
result.SaySuccess(context, "get21")
func getTLS2(router *response.Router) {
rivet.Response().Do(router.Context, func(result *response.Result) {
result.SaySuccess(router.Context, "get21")
})
}

func postTLS2(context *gin.Context) {
rivet.Response().Do(context, func(result *response.Result) {
func postTLS2(router *response.Router) {
rivet.Response().Do(router.Context, func(result *response.Result) {
var test = new(model.Test)
if err := context.ShouldBindJSON(test); err != nil {
result.SayFail(context, err.Error())
if err := router.Context.ShouldBindJSON(test); err != nil {
result.SayFail(router.Context, err.Error())
}
result.SaySuccess(context, test)
result.SaySuccess(router.Context, test)
})
}

func shuntTLS2(context *gin.Context) {
rivet.Response().Do(context, func(result *response.Result) {
func shuntTLS2(router *response.Router) {
rivet.Response().Do(router.Context, func(result *response.Result) {
var test = new(model.Test)
if err := context.ShouldBindJSON(test); err != nil {
result.SayFail(context, err.Error())
if err := router.Context.ShouldBindJSON(test); err != nil {
result.SayFail(router.Context, err.Error())
}
test.Name = "trans2"
result.SaySuccess(context, test)
result.SaySuccess(router.Context, test)
})
}

0 comments on commit 7100dd7

Please sign in to comment.