diff --git a/docs/client/examples.md b/docs/client/examples.md new file mode 100644 index 0000000000..ae291b4748 --- /dev/null +++ b/docs/client/examples.md @@ -0,0 +1,209 @@ +--- +id: examples +title: 🍳 Examples +description: >- + Some useful examples about the client. +sidebar_position: 5 +--- + +# Basic Auth + + + + +```go +package main + +import ( + "encoding/base64" + "fmt" + + "github.com/gofiber/fiber/v3/client" +) + +func main() { + cc := client.New() + + out := base64.StdEncoding.EncodeToString([]byte("john:doe")) + resp, err := cc.Get("http://localhost:3000", client.Config{ + Header: map[string]string{ + "Authorization": "Basic " + out, + }, + }) + if err != nil { + panic(err) + } + + fmt.Print(string(resp.Body())) +} +``` + + + +```go +package main + +import ( + "github.com/gofiber/fiber/v3" + "github.com/gofiber/fiber/v3/middleware/basicauth" +) + +func main() { + app := fiber.New() + app.Use( + basicauth.New(basicauth.Config{ + Users: map[string]string{ + "john": "doe", + }, + }), + ) + + app.Get("/", func(c fiber.Ctx) error { + return c.SendString("Hello, World!") + }) + + app.Listen(":3000") +} +``` + + + +# TLS + + + + +```go +package main + +import ( + "crypto/tls" + "crypto/x509" + "fmt" + "os" + + "github.com/gofiber/fiber/v3/client" +) + +func main() { + cc := client.New() + + certPool, err := x509.SystemCertPool() + if err != nil { + panic(err) + } + + cert, err := os.ReadFile("ssl.cert") + if err != nil { + panic(err) + } + + certPool.AppendCertsFromPEM(cert) + cc.SetTLSConfig(&tls.Config{ + RootCAs: certPool, + }) + + resp, err := cc.Get("https://localhost:3000") + if err != nil { + panic(err) + } + + fmt.Print(string(resp.Body())) +} +``` + + + +```go +package main + +import ( + "github.com/gofiber/fiber/v3" +) + +func main() { + app := fiber.New() + + app.Get("/", func(c fiber.Ctx) error { + return c.SendString("Hello, World!") + }) + + err := app.Listen(":3000", fiber.ListenConfig{ + CertFile: "ssl.cert", + CertKeyFile: "ssl.key", + }) + if err != nil { + panic(err) + } +} +``` + + + +# Cookiejar + +## Request + +```go +func main() { + jar := client.AcquireCookieJar() + defer client.ReleaseCookieJar(jar) + + cc := client.New() + cc.SetCookieJar(jar) + + jar.SetKeyValueBytes("httpbin.org", []byte("john"), []byte("doe")) + + resp, err := cc.Get("https://httpbin.org/cookies") + if err != nil { + panic(err) + } + + fmt.Println(string(resp.Body())) +} +``` + +
+Click here to see the result + +``` +{ + "cookies": { + "john": "doe" + } +} +``` +
+ + +## Response + +```go +func main() { + jar := client.AcquireCookieJar() + defer client.ReleaseCookieJar(jar) + + cc := client.New() + cc.SetCookieJar(jar) + + _, err := cc.Get("https://httpbin.org/cookies/set/john/doe") + if err != nil { + panic(err) + } + + uri := fasthttp.AcquireURI() + defer fasthttp.ReleaseURI(uri) + + uri.SetHost("httpbin.org") + uri.SetPath("/cookies") + fmt.Println(jar.Get(uri)) +} +``` + +
+Click here to see the result + +``` +[john=doe; path=/] +``` +