request.go 518 B

1234567891011121314151617181920212223242526272829303132
  1. package micro
  2. import "context"
  3. type (
  4. Request struct {
  5. ServiceName string
  6. Method string
  7. Body interface{}
  8. client *Client
  9. }
  10. )
  11. //Do handle request
  12. func (r *Request) Do(ctx context.Context) (Response, error) {
  13. return r.client.Do(ctx, r)
  14. }
  15. //Call execute method
  16. func (r *Request) Call(ctx context.Context, i interface{}) (err error) {
  17. var (
  18. res Response
  19. )
  20. if res, err = r.Do(ctx); err != nil {
  21. return
  22. }
  23. if res.Error() != nil {
  24. return res.Error()
  25. }
  26. err = res.Decode(i)
  27. return
  28. }