HTTP Client
HTTP Client is a simple HTTP/2 client for Go.
package main
import (
"context"
"net/http"
"net/url"
"github.com/kataras/httpclient"
)
// The BaseURL of our API client.
const BaseURL = "https://api.weatherapi.com/v1"
type (
Options struct {
APIKey string `json:"api_key" yaml:"APIKey" toml:"APIKey"`
}
Client struct {
*httpclient.Client
}
)
func NewClient(opts Options) *Client {
apiKeyParameterSetter := httpclient.RequestParam("key", opts.APIKey)
c := httpclient.New(
httpclient.BaseURL(BaseURL),
httpclient.PersistentRequestOptions(apiKeyParameterSetter),
)
return &Client{c}
}
func (c *Client) GetCurrentByCity(ctx context.Context, city string) (resp Response, err error) {
urlpath := "/current.json"
// ?q=Athens&aqi=no
params := httpclient.RequestQuery(url.Values{
"q": []string{city},
"aqi": []string{"no"},
})
err = c.Client.ReadJSON(ctx, &resp, http.MethodGet, urlpath, nil, params)
return
}
Some of the features HTTP Client offers:
- Rate Limit
- Middleware
- JSON (read & write)
- Forms
- File Upload
- Plain Text
- Debug and more…
đź“– Learning HTTP Client
Installation
The only requirement is the Go Programming Language.
Create a new project
$ mkdir myapp
$ cd myapp
$ go mod init myapp
$ go get github.com/kataras/httpclient
Install on existing project
$ cd myapp
$ go get github.com/kataras/httpclient
Run
$ go mod tidy
$ go run .
Navigate through _examples folder for more.
📝 License
This project is licensed under the MIT License.