-
Notifications
You must be signed in to change notification settings - Fork 3
/
client.go
28 lines (22 loc) · 822 Bytes
/
client.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package http
import (
"net/http"
pkgZap "github.com/alexfalkowski/go-service/pkg/transport/http/logger/zap"
"github.com/alexfalkowski/go-service/pkg/transport/http/meta"
"github.com/alexfalkowski/go-service/pkg/transport/http/trace/opentracing"
"go.uber.org/zap"
)
// NewClient for HTTP.
func NewClient(logger *zap.Logger) *http.Client {
return NewClientWithRoundTripper(logger, http.DefaultTransport)
}
// NewClientWithRoundTripper for HTTP.
func NewClientWithRoundTripper(logger *zap.Logger, hrt http.RoundTripper) *http.Client {
return &http.Client{Transport: newRoundTripper(logger, hrt)}
}
func newRoundTripper(logger *zap.Logger, hrt http.RoundTripper) http.RoundTripper {
hrt = pkgZap.NewRoundTripper(logger, hrt)
hrt = opentracing.NewRoundTripper(hrt)
hrt = meta.NewRoundTripper(hrt)
return hrt
}