MiniappGoService/internal/infrastructure/httpClient/client.go

41 lines
656 B
Go

package httpClient
import (
"net/http"
"time"
)
type HttpClient struct {
client *http.Client
endpoint string
token string
logger loggerInstance
}
func (t *HttpClient) Close() error {
if transport, ok := t.client.Transport.(*http.Transport); ok {
transport.CloseIdleConnections()
}
return nil
}
func Init(
loggerInstance loggerInstance,
endpoint, token string,
) *HttpClient {
return &HttpClient{
logger: loggerInstance,
endpoint: endpoint,
token: token,
client: &http.Client{
Timeout: 50 * time.Second,
Transport: &http.Transport{
MaxIdleConns: 20,
IdleConnTimeout: 190 * time.Second,
},
},
}
}