Documentation ¶
Overview ¶
Package Gin is a HTTP web framework written in Go (Golang) plugin which can be used for integration with Gin http server.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Middleware ¶
Middleware gin middleware return HandlerFunc with tracing.
Example ¶
package main import ( "fmt" "log" "net/http" "sync" "github.com/ainilili/go2sky" h "github.com/ainilili/go2sky/plugins/http" "github.com/ainilili/go2sky/reporter" "github.com/gin-gonic/gin" ) func main() { // Use gRPC reporter for production re, err := reporter.NewLogReporter() if err != nil { log.Fatalf("new reporter error %v \n", err) } defer re.Close() tracer, err := go2sky.NewTracer("gin-server", go2sky.WithReporter(re)) if err != nil { log.Fatalf("create tracer error %v \n", err) } tracer.WaitUntilRegister() gin.SetMode(gin.ReleaseMode) r := gin.New() r.GET("/user/:name", func(c *gin.Context) { name := c.Param("name") c.String(200, "Hello %s", name) }) //Use go2sky middleware with tracing r.Use(Middleware(r, tracer)) go func() { if err := http.ListenAndServe(":8080", r); err != nil { panic(err) } }() var wg sync.WaitGroup wg.Add(1) go func() { defer wg.Done() request(tracer) }() wg.Wait() } func request(tracer *go2sky.Tracer) { //NewClient returns an HTTP Client with tracer client, err := h.NewClient(tracer) if err != nil { log.Fatalf("create client error %v \n", err) } request, err := http.NewRequest("GET", fmt.Sprintf("%s/user/gin", "http://127.0.0.1:8080"), nil) if err != nil { log.Fatalf("unable to create http request: %+v\n", err) } res, err := client.Do(request) if err != nil { log.Fatalf("unable to do http request: %+v\n", err) } _ = res.Body.Close() }
Output:
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.