https://github.com/nxdir-s/httpc
httpc is a net/http client wrapper that handles OAuth, Open Telemetry instrumentation, and retries
https://github.com/nxdir-s/httpc
go golang http http-client opentelemetry opentelemetry-go
Last synced: 4 months ago
JSON representation
httpc is a net/http client wrapper that handles OAuth, Open Telemetry instrumentation, and retries
- Host: GitHub
- URL: https://github.com/nxdir-s/httpc
- Owner: nxdir-s
- License: mit
- Created: 2024-09-09T05:18:48.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-08-02T06:18:38.000Z (5 months ago)
- Last Synced: 2025-08-02T08:56:00.086Z (5 months ago)
- Topics: go, golang, http, http-client, opentelemetry, opentelemetry-go
- Language: Go
- Homepage:
- Size: 41 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# httpc
This repository contains an `net/http` client wrapper that handles authentication and can be configured with retries and Open Telemetry instrumentation.
Example client setup
```go
cfg := &httpc.Config{
BaseUrl: "google.com",
Timeout: 10,
RetryEnabled: true,
TlsConfig: &tls.Config{
InsecureSkipVerify: false,
MinVersion: tls.VersionTLS12,
},
}
client, err := httpc.NewClient(ctx, cfg)
if err != nil {
// handle error
}
```
GET Request
```go
var response Response
resp, err := client.Get(ctx, "/resource", nil, &response)
if err != nil {
// handle error
}
defer resp.Body.Close()
```
POST Request
```go
var response Response
resp, err := client.Post(ctx, "/resource", bytes.NewReader(body), nil, &response)
if err != nil {
// handle error
}
defer resp.Body.Close()
```
PUT Request
```go
var response Response
resp, err := client.Put(ctx, "/resource", bytes.NewReader(body), nil, &response)
if err != nil {
// handle error
}
defer resp.Body.Close()
```
DELETE Request
```go
var response Response
resp, err := client.Delete(ctx, "/resource", bytes.NewReader(body), nil, &response)
if err != nil {
// handle error
}
defer resp.Body.Close()
```
PATCH Request
```go
var response Response
resp, err := client.Patch(ctx, "/resource", bytes.NewReader(body), nil, &response)
if err != nil {
// handle error
}
defer resp.Body.Close()
```