12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package proxy_test
- import (
- "go-common/library/net/http/blademaster"
- "go-common/library/net/http/blademaster/middleware/proxy"
- )
- // This example create several reverse proxy to show how to use proxy middleware.
- // We proxy three path to `api.bilibili.com` and return response without any changes.
- func Example() {
- proxies := map[string]string{
- "/index": "http://api.bilibili.com/html/index",
- "/ping": "http://api.bilibili.com/api/ping",
- "/api/versions": "http://api.bilibili.com/api/web/versions",
- }
- engine := blademaster.Default()
- for path, ep := range proxies {
- engine.GET(path, proxy.NewAlways(ep))
- }
- engine.Run(":18080")
- }
- // This example create several reverse proxy to show how to use jd proxy middleware.
- // The request will be proxied to destination only when request is from specified datacenter.
- func ExampleNewZoneProxy() {
- proxies := map[string]string{
- "/index": "http://api.bilibili.com/html/index",
- "/ping": "http://api.bilibili.com/api/ping",
- "/api/versions": "http://api.bilibili.com/api/web/versions",
- }
- engine := blademaster.Default()
- // proxy to specified destination
- for path, ep := range proxies {
- engine.GET(path, proxy.NewZoneProxy("sh004", ep), func(ctx *blademaster.Context) {
- ctx.String(200, "Origin")
- })
- }
- // proxy with request path
- ug := engine.Group("/update", proxy.NewZoneProxy("sh004", "http://sh001-api.bilibili.com"))
- ug.POST("/name", func(ctx *blademaster.Context) {
- ctx.String(500, "Should not be accessed")
- })
- ug.POST("/sign", func(ctx *blademaster.Context) {
- ctx.String(500, "Should not be accessed")
- })
- engine.Run(":18080")
- }
|