Skip to content

Commit

Permalink
Add docs for client examples
Browse files Browse the repository at this point in the history
  • Loading branch information
efectn committed May 10, 2024
1 parent a14bec7 commit 3085f70
Showing 1 changed file with 209 additions and 0 deletions.
209 changes: 209 additions & 0 deletions docs/client/examples.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
---
id: examples
title: 🍳 Examples
description: >-
Some useful examples about the client.
sidebar_position: 5
---

# Basic Auth

<Tabs>
<TabItem value="client" label="Client">

```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()))
}
```
</TabItem>
<TabItem value="server" label="Server">

```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")
}
```
</TabItem>
</Tabs>

# TLS

<Tabs>
<TabItem value="client" label="Client">

```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()))
}
```
</TabItem>
<TabItem value="server" label="Server">

```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)
}
}
```
</TabItem>
</Tabs>

# 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()))
}
```

<details>
<summary>Click here to see the result</summary>

```
{
"cookies": {
"john": "doe"
}
}
```
</details>


## 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))
}
```

<details>
<summary>Click here to see the result</summary>

```
[john=doe; path=/]
```
</details>

0 comments on commit 3085f70

Please sign in to comment.