Skip to content

A simple wrapper around the Go fasthttp client optimized for ease-of-use

License

Notifications You must be signed in to change notification settings

fako1024/fhttpc

Repository files navigation

A simple wrapper around the Go fasthttp client optimized for ease-of-use

Github Release GoDoc Go Report Card Build/Test Status CodeQL

This package wraps the Go fasthttp client, providing a simplified interaction model using method chaining and various additional capabilities.

Features

  • Simple, method chaining based interface for fasthttp client requests
  • Simulation of request delays
  • Customization of fasthttp client via functional parameter
  • Back-Off-Retry concept to automatically retry requests if required

Installation

go get -u github.com/fako1024/fhttpc

Examples

Perform simple HTTP GET request

err := fhttpc.New("GET", "http://example.org").Run()
if err != nil {
	log.Fatalf("error performing GET request: %s", err)
}

Perform HTTP GET request and parse the result as JSON into a struct

var res = struct {
	Status int
	Message string
}{}
err := fhttpc.New("GET", "http://example.org").
	ParseJSON(&res).
	Run()
if err != nil {
	log.Fatalf("error performing GET request: %s", err)
}

Perform HTTPS POST request with a simple body, disabling certificate validation and copying the response to a bytes.Buffer

buf := new(bytes.Buffer)
err := fhttpc.New("POST", "https://example.org").
	SkipCertificateVerification().
	Body([]byte{0x1, 0x2}).
	ParseFn(fhttpc.Copy(buf)).
	Run()

if err != nil {
    log.Fatalf("error performing POST request: %s", err)
}

fmt.Println(buf.String())

Perform HTTPS GET request (with query parameters + headers + basic auth)

err := fhttpc.New("GET", "https://example.org").
	SkipCertificateVerification().
	QueryParams(fhttpc.Params{
		"param": "test",
	}).
	Headers(fhttpc.Params{
		"X-HEADER-TEST": "test",
	}).
	AuthBasic("username", "password").
	Run()

if err != nil {
	log.Fatalf("error performing GET request: %s", err)
}

About

A simple wrapper around the Go fasthttp client optimized for ease-of-use

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages