package main import ( "fmt" "log" "net/http" "github.com/gin-gonic/gin" pb "github.com/gin-gonic/gin/examples/grpc/pb" "google.golang.org/grpc" ) func main() { // Set up a connection to the server. conn, err := grpc.Dial("localhost:50051", grpc.WithInsecure()) if err != nil { log.Fatalf("did not connect: %v", err) } defer conn.Close() client := pb.NewGreeterClient(conn) // Set up a http server. r := gin.Default() r.GET("/rest/n/:name", func(c *gin.Context) { name := c.Param("name") // Contact the server and print out its response. req := &pb.HelloRequest{Name: name} res, err := client.SayHello(c, req) if err != nil { c.JSON(http.StatusInternalServerError, gin.H{ "error": err.Error(), }) return } c.JSON(http.StatusOK, gin.H{ "result": fmt.Sprint(res.Message), }) }) // Run http server if err := r.Run(":8052"); err != nil { log.Fatalf("could not run server: %v", err) } }