func (c *client) GET(url string, responseModel interface{}) error {
	return c.do(http.MethodGet, url, responseModel, nil)
}
GET sends a GET request to the YNAB API
package ynab  
import (
	"bytes"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"
	"strconv"
	"sync"
	"go.bmvs.io/ynab/api"
	"go.bmvs.io/ynab/api/account"
	"go.bmvs.io/ynab/api/budget"
	"go.bmvs.io/ynab/api/category"
	"go.bmvs.io/ynab/api/month"
	"go.bmvs.io/ynab/api/payee"
	"go.bmvs.io/ynab/api/transaction"
	"go.bmvs.io/ynab/api/user"
)
const apiEndpoint = "https://api.youneedabudget.com/v1"
type ClientServicer interface {
	User() *user.Service
	Budget() *budget.Service
	Account() *account.Service
	Category() *category.Service
	Payee() *payee.Service
	Month() *month.Service
	Transaction() *transaction.Service
	RateLimit() *api.RateLimit
}
func NewClient(accessToken string) ClientServicer {
	c := &client{
		accessToken: accessToken,
		client:      http.DefaultClient,
	}
	c.user = user.NewService(c)
	c.budget = budget.NewService(c)
	c.account = account.NewService(c)
	c.category = category.NewService(c)
	c.payee = payee.NewService(c)
	c.month = month.NewService(c)
	c.transaction = transaction.NewService(c)
	return c
}
type client struct {
	sync.Mutex
	accessToken string
	client    *http.Client
	rateLimit *api.RateLimit
	user        *user.Service
	budget      *budget.Service
	account     *account.Service
	category    *category.Service
	payee       *payee.Service
	month       *month.Service
	transaction *transaction.Service
}
func (c *client) User() *user.Service {
	return c.user
}
func (c *client) Budget() *budget.Service {
	return c.budget
}
func (c *client) Account() *account.Service {
	return c.account
}
func (c *client) Category() *category.Service {
	return c.category
}
func (c *client) Payee() *payee.Service {
	return c.payee
}
func (c *client) Month() *month.Service {
	return c.month
}
func (c *client) Transaction() *transaction.Service {
	return c.transaction
}
func (c *client) RateLimit() *api.RateLimit {
	return c.rateLimit
}