8 "github.com/go-kit/kit/endpoint"
11 func makeUppercaseEndpoint(svc StringService) endpoint.Endpoint {
12 return func(ctx context.Context, request interface{}) (interface{}, error) {
13 req := request.(uppercaseRequest)
14 v, err := svc.Uppercase(req.S)
16 return uppercaseResponse{v, err.Error()}, nil
18 return uppercaseResponse{v, ""}, nil
22 func makeCountEndpoint(svc StringService) endpoint.Endpoint {
23 return func(ctx context.Context, request interface{}) (interface{}, error) {
24 req := request.(countRequest)
26 return countResponse{v}, nil
30 func decodeUppercaseRequest(_ context.Context, r *http.Request) (interface{}, error) {
31 var request uppercaseRequest
32 if err := json.NewDecoder(r.Body).Decode(&request); err != nil {
38 func decodeCountRequest(_ context.Context, r *http.Request) (interface{}, error) {
39 var request countRequest
40 if err := json.NewDecoder(r.Body).Decode(&request); err != nil {
46 func encodeResponse(_ context.Context, w http.ResponseWriter, response interface{}) error {
47 return json.NewEncoder(w).Encode(response)
50 type uppercaseRequest struct {
54 type uppercaseResponse struct {
56 Err string `json:"err,omitempty"`
59 type countRequest struct {
63 type countResponse struct {