kuma
1package http2
3import (4nethttp "net/http"5"net/url"6"path"7)
8
9type Client interface {10Do(req *nethttp.Request) (*nethttp.Response, error)11}
12
13type ClientFunc func(req *nethttp.Request) (*nethttp.Response, error)14
15func (f ClientFunc) Do(req *nethttp.Request) (*nethttp.Response, error) {16return f(req)17}
18
19func ClientWithBaseURL(delegate Client, baseURL *url.URL, headers map[string]string) Client {20return ClientFunc(func(req *nethttp.Request) (*nethttp.Response, error) {21if req.URL != nil {22req.URL.Scheme = baseURL.Scheme23req.URL.Host = baseURL.Host24req.URL.Path = path.Join(baseURL.Path, req.URL.Path)25for k, v := range headers {26req.Header.Add(k, v)27}28}29return delegate.Do(req)30})31}
32