July 2019
Intermediate to advanced
502 pages
14h
English
A Go kit microservice is really just a set of endpoints. Each endpoint corresponds to one method in your service interface. An endpoint is always associated with at least one transport and a handler that you implement to service the request. The Go kit endpoints support the RPC style of communication and have request and response structs.
Here is the factory function for the Follow() method endpoint:
func makeFollowEndpoint(svc om.SocialGraphManager) endpoint.Endpoint { return func(_ context.Context, request interface{}) (interface{}, error) { req := request.(followRequest) err := svc.Follow(req.Followed, req.Follower) res := followResponse{} if err != nil { res.Err = err.Error() } return res, nil }}
I will explain ...