Created
June 1, 2018 06:30
-
-
Save antklim/4c2d37197daa5c48d99530143581942f to your computer and use it in GitHub Desktop.
Go Micro greeter service (HTTP)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"context" | |
"encoding/json" | |
"log" | |
"net/http" | |
proto "github.com/antklim/go-microservices/go-micro-greeter/pb" | |
"github.com/micro/go-micro/client" | |
web "github.com/micro/go-web" | |
) | |
func main() { | |
service := web.NewService( | |
web.Name("go-micro-web-greeter"), | |
) | |
service.HandleFunc("/greeting", func(w http.ResponseWriter, r *http.Request) { | |
if r.Method == "GET" { | |
var name string | |
vars := r.URL.Query() | |
names, exists := vars["name"] | |
if !exists || len(names) != 1 { | |
name = "" | |
} else { | |
name = names[0] | |
} | |
cl := proto.NewGreeterClient("go-micro-srv-greeter", client.DefaultClient) | |
rsp, err := cl.Greeting(context.Background(), &proto.GreetingRequest{Name: name}) | |
if err != nil { | |
http.Error(w, err.Error(), 500) | |
return | |
} | |
js, err := json.Marshal(rsp) | |
if err != nil { | |
http.Error(w, err.Error(), http.StatusInternalServerError) | |
return | |
} | |
w.Header().Set("Content-Type", "application/json") | |
w.Write(js) | |
return | |
} | |
}) | |
if err := service.Init(); err != nil { | |
log.Fatal(err) | |
} | |
if err := service.Run(); err != nil { | |
log.Fatal(err) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment