invoke.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package invoke
  2. import (
  3. "errors"
  4. "github.com/go-resty/resty/v2"
  5. "net/url"
  6. "time"
  7. )
  8. type API struct {
  9. client *resty.Client
  10. baseUrl string
  11. }
  12. func NewAPI(baseUrl string, timeout time.Duration) *API {
  13. return &API{
  14. client: resty.New().SetTimeout(timeout),
  15. baseUrl: baseUrl,
  16. }
  17. }
  18. func DestroyAPI(api *API) {
  19. if api == nil {
  20. return
  21. }
  22. api.baseUrl = ""
  23. api.client = nil
  24. }
  25. func (api *API) PostJSON() {
  26. }
  27. func (api *API) GetJSON() {
  28. }
  29. func (api *API) PutJSON() {
  30. }
  31. func (api *API) DeleteJSON() {
  32. }
  33. func (api *API) Post(methodName string, headers map[string]string, data []byte) ([]byte, error) {
  34. invokeUrl, err := url.JoinPath(api.baseUrl, methodName)
  35. if err != nil {
  36. return nil, err
  37. }
  38. resp, err := api.client.R().
  39. SetHeaders(headers).
  40. SetBody(data).
  41. Post(invokeUrl)
  42. if err != nil {
  43. return nil, err
  44. }
  45. if resp.IsError() {
  46. return nil, errors.New(string(resp.Body()))
  47. }
  48. return resp.Body(), nil
  49. }
  50. func (api *API) Get() {
  51. }
  52. func (api *API) Put() {
  53. }
  54. func (api *API) Delete() {
  55. }