github.com/micro/go-micro/examples@v0.0.0-20210105173217-bf4ab679e18b/greeter/web/web.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "log" 6 "net/http" 7 8 hello "github.com/micro/go-micro/examples/greeter/srv/proto/hello" 9 "github.com/micro/go-micro/v2/client" 10 "github.com/micro/go-micro/v2/web" 11 12 "context" 13 ) 14 15 func main() { 16 service := web.NewService( 17 web.Name("go.micro.web.greeter"), 18 ) 19 20 service.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { 21 if r.Method == "POST" { 22 r.ParseForm() 23 24 name := r.Form.Get("name") 25 if len(name) == 0 { 26 name = "World" 27 } 28 29 cl := hello.NewSayService("go.micro.srv.greeter", client.DefaultClient) 30 rsp, err := cl.Hello(context.Background(), &hello.Request{ 31 Name: name, 32 }) 33 34 if err != nil { 35 http.Error(w, err.Error(), 500) 36 return 37 } 38 39 w.Write([]byte(`<html><body><h1>` + rsp.Msg + `</h1></body></html>`)) 40 return 41 } 42 43 fmt.Fprint(w, `<html><body><h1>Enter Name<h1><form method=post><input name=name type=text /></form></body></html>`) 44 }) 45 46 if err := service.Init(); err != nil { 47 log.Fatal(err) 48 } 49 50 if err := service.Run(); err != nil { 51 log.Fatal(err) 52 } 53 }