func (r *RoutesService) Get(id string) (*Route, *http.Response, error) {
	return r.GetWithContext(context.TODO(), id)
}
Get retrieves registered route by ID.
package kongo
import (
	"context"
	"github.com/google/go-querystring/query"
	"net/http"
	"net/url"
	"path"
)
const (
	routesResourcePath = "/routes"
)
type (
	Routes interface {
		Create(route *Route) (*Route, *http.Response, error)
		CreateWithContext(ctx context.Context, route *Route) (*Route, *http.Response, error)
		Delete(id string) (*http.Response, error)
		DeleteWithContext(ctx context.Context, id string) (*http.Response, error)
		Get(id string) (*Route, *http.Response, error)
		GetWithContext(ctx context.Context, id string) (*Route, *http.Response, error)
		List(options *ListRoutesOptions) ([]*Route, *http.Response, error)
		ListWithContext(ctx context.Context, options *ListRoutesOptions) ([]*Route, *http.Response, error)
		Update(id string, route *Route) (*Route, *http.Response, error)
		UpdateWithContext(ctx context.Context, id string, route *Route) (*Route, *http.Response, error)
	}
	RoutesService struct {
		client *Kongo
	}
	Route struct {
		CreatedAt Time `json:"created_at"`
		Hosts []string `json:"hosts,omitempty"`
		Id string `json:"id"`
		Methods []string `json:"methods,omitempty"`
		Paths []string `json:"paths,omitempty"`
		PreserveHost bool `json:"preserve_host,omitempty"`
		Protocols []string `json:"protocols"`
		Service RouteService `json:"service"`
		StripPath bool `json:"strip_path,omitempty"`
		UpdatedAt Time `json:"updated_at"`
	}
	RouteService struct {
		Id string `json:"id"`
	}
	RoutesRoot struct {
		Routes []*Route `json:"data"`
	}
	ListRoutesOptions struct {
		Offset string `url:"offset, omitempty"`
		Size int `url:"size, omitempty"`
	}
)
func (r *RoutesService) CreateWithContext(ctx context.Context, route *Route) (*Route, *http.Response, error) {
	resource, _ := url.Parse(routesResourcePath)
	req, err := r.client.NewRequest(ctx, http.MethodPost, resource, route)
	if err != nil {
		return nil, nil, err
	}
	root := new(Route)
	res, err := r.client.Do(req, root)
	if err != nil {
		return nil, res, err
	}
	return root, res, nil
}
func (r *RoutesService) Create(route *Route) (*Route, *http.Response, error) {
	return r.CreateWithContext(context.TODO(), route)
}
func (r *RoutesService) DeleteWithContext(ctx context.Context, id string) (*http.Response, error) {
	resource, _ := url.Parse(routesResourcePath)
	resource.Path = path.Join(resource.Path, id)
	req, err := r.client.NewRequest(ctx, http.MethodDelete, resource, nil)
	if err != nil {
		return nil, err
	}
	return r.client.Do(req, nil)
}
func (r *RoutesService) Delete(id string) (*http.Response, error) {
	return r.DeleteWithContext(context.TODO(), id)
}
func (r *RoutesService) GetWithContext(ctx context.Context, id string) (*Route, *http.Response, error) {
	resource, _ := url.Parse(routesResourcePath)
	resource.Path = path.Join(resource.Path, id)
	req, err := r.client.NewRequest(ctx, http.MethodGet, resource, nil)
	if err != nil {
		return nil, nil, err
	}
	route := new(Route)
	res, err := r.client.Do(req, route)
	if err != nil {
		return nil, res, err
	}
	return route, res, nil
}