🧹 v3 (Maintenance): Update docs to reflect fiber.Ctx struct to interface change (#2880)

* 🧹 [v3 Maintenance]: Update docs to reflect fiber.Ctx struct to interface change

Summary:
- Update `Static.Next()` in `/docs/api/app.md` to use the `Ctx` interface
- Update `/docs/api/ctx.md` to use the `Ctx` interface

Related Issues:
#2879

* 🧹 [v3 Maintenance]: Update Ctx struct description to interface

Related Issues:
#2879
This commit is contained in:
Giovanni Rivera 2024-03-03 23:49:25 -08:00 committed by GitHub
parent b38be4bcb3
commit c5a809f5c5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -2,7 +2,7 @@
id: ctx id: ctx
title: 🧠 Ctx title: 🧠 Ctx
description: >- description: >-
The Ctx struct represents the Context which hold the HTTP request and The Ctx interface represents the Context which hold the HTTP request and
response. It has methods for the request query string, parameters, body, HTTP response. It has methods for the request query string, parameters, body, HTTP
headers, and so on. headers, and so on.
sidebar_position: 3 sidebar_position: 3
@ -17,10 +17,10 @@ Based on the requests [Accept](https://developer.mozilla.org/en-US/docs/Web/H
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) Accepts(offers ...string) string func (c Ctx) Accepts(offers ...string) string
func (c *Ctx) AcceptsCharsets(offers ...string) string func (c Ctx) AcceptsCharsets(offers ...string) string
func (c *Ctx) AcceptsEncodings(offers ...string) string func (c Ctx) AcceptsEncodings(offers ...string) string
func (c *Ctx) AcceptsLanguages(offers ...string) string func (c Ctx) AcceptsLanguages(offers ...string) string
``` ```
```go title="Example" ```go title="Example"
@ -106,7 +106,7 @@ Params is used to get all route parameters.
Using Params method to get params. Using Params method to get params.
```go title="Signature" ```go title="Signature"
func (c *Ctx) AllParams() map[string]string func (c Ctx) AllParams() map[string]string
``` ```
```go title="Example" ```go title="Example"
@ -130,7 +130,7 @@ app.Get("/user/*", func(c fiber.Ctx) error {
Returns the [\*App](ctx.md) reference so you could easily access all application settings. Returns the [\*App](ctx.md) reference so you could easily access all application settings.
```go title="Signature" ```go title="Signature"
func (c *Ctx) App() *App func (c Ctx) App() *App
``` ```
```go title="Example" ```go title="Example"
@ -148,7 +148,7 @@ If the header is **not** already set, it creates the header with the specified v
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) Append(field string, values ...string) func (c Ctx) Append(field string, values ...string)
``` ```
```go title="Example" ```go title="Example"
@ -168,7 +168,7 @@ app.Get("/", func(c fiber.Ctx) error {
Sets the HTTP response [Content-Disposition](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition) header field to `attachment`. Sets the HTTP response [Content-Disposition](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition) header field to `attachment`.
```go title="Signature" ```go title="Signature"
func (c *Ctx) Attachment(filename ...string) func (c Ctx) Attachment(filename ...string)
``` ```
```go title="Example" ```go title="Example"
@ -196,7 +196,7 @@ If the header is **not** specified or there is **no** proper format, **text/plai
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) AutoFormat(body any) error func (c Ctx) AutoFormat(body any) error
``` ```
```go title="Example" ```go title="Example"
@ -230,7 +230,7 @@ app.Get("/", func(c fiber.Ctx) error {
Returns the base URL \(**protocol** + **host**\) as a `string`. Returns the base URL \(**protocol** + **host**\) as a `string`.
```go title="Signature" ```go title="Signature"
func (c *Ctx) BaseURL() string func (c Ctx) BaseURL() string
``` ```
```go title="Example" ```go title="Example"
@ -248,7 +248,7 @@ Add vars to default view var map binding to template engine.
Variables are read by the Render method and may be overwritten. Variables are read by the Render method and may be overwritten.
```go title="Signature" ```go title="Signature"
func (c *Ctx) Bind(vars Map) error func (c Ctx) Bind(vars Map) error
``` ```
```go title="Example" ```go title="Example"
@ -268,7 +268,7 @@ app.Get("/", func(c fiber.Ctx) error {
Returns the raw request **body**. Returns the raw request **body**.
```go title="Signature" ```go title="Signature"
func (c *Ctx) BodyRaw() []byte func (c Ctx) BodyRaw() []byte
``` ```
```go title="Example" ```go title="Example"
@ -288,7 +288,7 @@ app.Post("/", func(c fiber.Ctx) error {
As per the header `Content-Encoding`, this method will try to perform a file decompression from the **body** bytes. In case no `Content-Encoding` header is sent, it will perform as [BodyRaw](#bodyraw). As per the header `Content-Encoding`, this method will try to perform a file decompression from the **body** bytes. In case no `Content-Encoding` header is sent, it will perform as [BodyRaw](#bodyraw).
```go title="Signature" ```go title="Signature"
func (c *Ctx) Body() []byte func (c Ctx) Body() []byte
``` ```
```go title="Example" ```go title="Example"
@ -318,7 +318,7 @@ It is important to specify the correct struct tag based on the content type to b
| `text/xml` | xml | | `text/xml` | xml |
```go title="Signature" ```go title="Signature"
func (c *Ctx) BodyParser(out any) error func (c Ctx) BodyParser(out any) error
``` ```
```go title="Example" ```go title="Example"
@ -362,7 +362,7 @@ app.Post("/", func(c fiber.Ctx) error {
Expire a client cookie \(_or all cookies if left empty\)_ Expire a client cookie \(_or all cookies if left empty\)_
```go title="Signature" ```go title="Signature"
func (c *Ctx) ClearCookie(key ...string) func (c Ctx) ClearCookie(key ...string)
``` ```
```go title="Example" ```go title="Example"
@ -415,7 +415,7 @@ ClientHelloInfo contains information from a ClientHello message in order to guid
You can refer to the [ClientHelloInfo](https://golang.org/pkg/crypto/tls/#ClientHelloInfo) struct documentation for more information on the returned struct. You can refer to the [ClientHelloInfo](https://golang.org/pkg/crypto/tls/#ClientHelloInfo) struct documentation for more information on the returned struct.
```go title="Signature" ```go title="Signature"
func (c *Ctx) ClientHelloInfo() *tls.ClientHelloInfo func (c Ctx) ClientHelloInfo() *tls.ClientHelloInfo
``` ```
```go title="Example" ```go title="Example"
@ -431,7 +431,7 @@ app.Get("/hello", func(c fiber.Ctx) error {
Returns [\*fasthttp.RequestCtx](https://godoc.org/github.com/valyala/fasthttp#RequestCtx) that is compatible with the context.Context interface that requires a deadline, a cancellation signal, and other values across API boundaries. Returns [\*fasthttp.RequestCtx](https://godoc.org/github.com/valyala/fasthttp#RequestCtx) that is compatible with the context.Context interface that requires a deadline, a cancellation signal, and other values across API boundaries.
```go title="Signature" ```go title="Signature"
func (c *Ctx) Context() *fasthttp.RequestCtx func (c Ctx) Context() *fasthttp.RequestCtx
``` ```
:::info :::info
@ -443,7 +443,7 @@ Please read the [Fasthttp Documentation](https://pkg.go.dev/github.com/valyala/f
Set cookie Set cookie
```go title="Signature" ```go title="Signature"
func (c *Ctx) Cookie(cookie *Cookie) func (c Ctx) Cookie(cookie *Cookie)
``` ```
```go ```go
@ -481,7 +481,7 @@ This method is similar to [BodyParser](ctx.md#bodyparser), but for cookie parame
It is important to use the struct tag "cookie". For example, if you want to parse a cookie with a field called Age, you would use a struct field of `cookie:"age"`. It is important to use the struct tag "cookie". For example, if you want to parse a cookie with a field called Age, you would use a struct field of `cookie:"age"`.
```go title="Signature" ```go title="Signature"
func (c *Ctx) CookieParser(out any) error func (c Ctx) CookieParser(out any) error
``` ```
```go title="Example" ```go title="Example"
@ -512,7 +512,7 @@ app.Get("/", func(c fiber.Ctx) error {
Get cookie value by key, you could pass an optional default value that will be returned if the cookie key does not exist. Get cookie value by key, you could pass an optional default value that will be returned if the cookie key does not exist.
```go title="Signature" ```go title="Signature"
func (c *Ctx) Cookies(key string, defaultValue ...string) string func (c Ctx) Cookies(key string, defaultValue ...string) string
``` ```
```go title="Example" ```go title="Example"
@ -536,7 +536,7 @@ Typically, browsers will prompt the user to download. By default, the [Content-D
Override this default with the **filename** parameter. Override this default with the **filename** parameter.
```go title="Signature" ```go title="Signature"
func (c *Ctx) Download(file string, filename ...string) error func (c Ctx) Download(file string, filename ...string) error
``` ```
```go title="Example" ```go title="Example"
@ -558,7 +558,7 @@ If the Accept header is **not** specified, the first handler will be used.
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) Format(handlers ...ResFmt) error func (c Ctx) Format(handlers ...ResFmt) error
``` ```
```go title="Example" ```go title="Example"
@ -607,7 +607,7 @@ app.Get("/default", func(c fiber.Ctx) error {
MultipartForm files can be retrieved by name, the **first** file from the given key is returned. MultipartForm files can be retrieved by name, the **first** file from the given key is returned.
```go title="Signature" ```go title="Signature"
func (c *Ctx) FormFile(key string) (*multipart.FileHeader, error) func (c Ctx) FormFile(key string) (*multipart.FileHeader, error)
``` ```
```go title="Example" ```go title="Example"
@ -625,7 +625,7 @@ app.Post("/", func(c fiber.Ctx) error {
Any form values can be retrieved by name, the **first** value from the given key is returned. Any form values can be retrieved by name, the **first** value from the given key is returned.
```go title="Signature" ```go title="Signature"
func (c *Ctx) FormValue(key string, defaultValue ...string) string func (c Ctx) FormValue(key string, defaultValue ...string) string
``` ```
```go title="Example" ```go title="Example"
@ -650,7 +650,7 @@ When a client sends the Cache-Control: no-cache request header to indicate an en
Read more on [https://expressjs.com/en/4x/api.html\#req.fresh](https://expressjs.com/en/4x/api.html#req.fresh) Read more on [https://expressjs.com/en/4x/api.html\#req.fresh](https://expressjs.com/en/4x/api.html#req.fresh)
```go title="Signature" ```go title="Signature"
func (c *Ctx) Fresh() bool func (c Ctx) Fresh() bool
``` ```
## Get ## Get
@ -662,7 +662,7 @@ The match is **case-insensitive**.
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) Get(key string, defaultValue ...string) string func (c Ctx) Get(key string, defaultValue ...string) string
``` ```
```go title="Example" ```go title="Example"
@ -682,7 +682,7 @@ app.Get("/", func(c fiber.Ctx) error {
Returns the HTTP request headers as a map. Since a header can be set multiple times in a single request, the values of the map are slices of strings containing all the different values of the header. Returns the HTTP request headers as a map. Since a header can be set multiple times in a single request, the values of the map are slices of strings containing all the different values of the header.
```go title="Signature" ```go title="Signature"
func (c *Ctx) GetReqHeaders() map[string][]string func (c Ctx) GetReqHeaders() map[string][]string
``` ```
> _Returned value is only valid within the handler. Do not store any references. > _Returned value is only valid within the handler. Do not store any references.
@ -697,7 +697,7 @@ The match is **case-insensitive**.
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) GetRespHeader(key string, defaultValue ...string) string func (c Ctx) GetRespHeader(key string, defaultValue ...string) string
``` ```
```go title="Example" ```go title="Example"
@ -717,7 +717,7 @@ app.Get("/", func(c fiber.Ctx) error {
Returns the HTTP response headers as a map. Since a header can be set multiple times in a single request, the values of the map are slices of strings containing all the different values of the header. Returns the HTTP response headers as a map. Since a header can be set multiple times in a single request, the values of the map are slices of strings containing all the different values of the header.
```go title="Signature" ```go title="Signature"
func (c *Ctx) GetRespHeaders() map[string][]string func (c Ctx) GetRespHeaders() map[string][]string
``` ```
> _Returned value is only valid within the handler. Do not store any references. > _Returned value is only valid within the handler. Do not store any references.
@ -728,7 +728,7 @@ func (c *Ctx) GetRespHeaders() map[string][]string
Generates URLs to named routes, with parameters. URLs are relative, for example: "/user/1831" Generates URLs to named routes, with parameters. URLs are relative, for example: "/user/1831"
```go title="Signature" ```go title="Signature"
func (c *Ctx) GetRouteURL(routeName string, params Map) (string, error) func (c Ctx) GetRouteURL(routeName string, params Map) (string, error)
``` ```
```go title="Example" ```go title="Example"
@ -753,7 +753,7 @@ app.Get("/test", func(c fiber.Ctx) error {
Returns the hostname derived from the [Host](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Host) HTTP header. Returns the hostname derived from the [Host](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Host) HTTP header.
```go title="Signature" ```go title="Signature"
func (c *Ctx) Hostname() string func (c Ctx) Hostname() string
``` ```
```go title="Example" ```go title="Example"
@ -774,7 +774,7 @@ app.Get("/", func(c fiber.Ctx) error {
Returns the remote IP address of the request. Returns the remote IP address of the request.
```go title="Signature" ```go title="Signature"
func (c *Ctx) IP() string func (c Ctx) IP() string
``` ```
```go title="Example" ```go title="Example"
@ -798,7 +798,7 @@ app := fiber.New(fiber.Config{
Returns an array of IP addresses specified in the [X-Forwarded-For](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For) request header. Returns an array of IP addresses specified in the [X-Forwarded-For](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For) request header.
```go title="Signature" ```go title="Signature"
func (c *Ctx) IPs() []string func (c Ctx) IPs() []string
``` ```
```go title="Example" ```go title="Example"
@ -824,7 +824,7 @@ If the request has **no** body, it returns **false**.
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) Is(extension string) bool func (c Ctx) Is(extension string) bool
``` ```
```go title="Example" ```go title="Example"
@ -844,7 +844,7 @@ app.Get("/", func(c fiber.Ctx) error {
Returns true if request came from localhost Returns true if request came from localhost
```go title="Signature" ```go title="Signature"
func (c *Ctx) IsFromLocal() bool { func (c Ctx) IsFromLocal() bool {
``` ```
```go title="Example" ```go title="Example"
@ -866,7 +866,7 @@ JSON also sets the content header to the `ctype` parameter. If no `ctype` is pas
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) JSON(data any, ctype ...string) error func (c Ctx) JSON(data any, ctype ...string) error
``` ```
```go title="Example" ```go title="Example"
@ -918,7 +918,7 @@ Sends a JSON response with JSONP support. This method is identical to [JSON](ctx
Override this by passing a **named string** in the method. Override this by passing a **named string** in the method.
```go title="Signature" ```go title="Signature"
func (c *Ctx) JSONP(data any, callback ...string) error func (c Ctx) JSONP(data any, callback ...string) error
``` ```
```go title="Example" ```go title="Example"
@ -947,7 +947,7 @@ app.Get("/", func(c fiber.Ctx) error {
Joins the links followed by the property to populate the responses [Link](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Link) HTTP header field. Joins the links followed by the property to populate the responses [Link](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Link) HTTP header field.
```go title="Signature" ```go title="Signature"
func (c *Ctx) Links(link ...string) func (c Ctx) Links(link ...string)
``` ```
```go title="Example" ```go title="Example"
@ -972,7 +972,7 @@ This is useful if you want to pass some **specific** data to the next middleware
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) Locals(key any, value ...any) any func (c Ctx) Locals(key any, value ...any) any
``` ```
```go title="Example" ```go title="Example"
@ -1030,7 +1030,7 @@ over route-specific data within your application.
Sets the response [Location](https://developer.mozilla.org/ru/docs/Web/HTTP/Headers/Location) HTTP header to the specified path parameter. Sets the response [Location](https://developer.mozilla.org/ru/docs/Web/HTTP/Headers/Location) HTTP header to the specified path parameter.
```go title="Signature" ```go title="Signature"
func (c *Ctx) Location(path string) func (c Ctx) Location(path string)
``` ```
```go title="Example" ```go title="Example"
@ -1049,7 +1049,7 @@ Returns a string corresponding to the HTTP method of the request: `GET`, `POST`,
Optionally, you could override the method by passing a string. Optionally, you could override the method by passing a string.
```go title="Signature" ```go title="Signature"
func (c *Ctx) Method(override ...string) string func (c Ctx) Method(override ...string) string
``` ```
```go title="Example" ```go title="Example"
@ -1068,7 +1068,7 @@ app.Post("/", func(c fiber.Ctx) error {
To access multipart form entries, you can parse the binary with `MultipartForm()`. This returns a `map[string][]string`, so given a key, the value will be a string slice. To access multipart form entries, you can parse the binary with `MultipartForm()`. This returns a `map[string][]string`, so given a key, the value will be a string slice.
```go title="Signature" ```go title="Signature"
func (c *Ctx) MultipartForm() (*multipart.Form, error) func (c Ctx) MultipartForm() (*multipart.Form, error)
``` ```
```go title="Example" ```go title="Example"
@ -1107,7 +1107,7 @@ app.Post("/", func(c fiber.Ctx) error {
When **Next** is called, it executes the next method in the stack that matches the current route. You can pass an error struct within the method that will end the chaining and call the [error handler](https://docs.gofiber.io/guide/error-handling). When **Next** is called, it executes the next method in the stack that matches the current route. You can pass an error struct within the method that will end the chaining and call the [error handler](https://docs.gofiber.io/guide/error-handling).
```go title="Signature" ```go title="Signature"
func (c *Ctx) Next() error func (c Ctx) Next() error
``` ```
```go title="Example" ```go title="Example"
@ -1132,7 +1132,7 @@ app.Get("/", func(c fiber.Ctx) error {
Returns the original request URL. Returns the original request URL.
```go title="Signature" ```go title="Signature"
func (c *Ctx) OriginalURL() string func (c Ctx) OriginalURL() string
``` ```
```go title="Example" ```go title="Example"
@ -1157,7 +1157,7 @@ Defaults to empty string \(`""`\), if the param **doesn't** exist.
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) Params(key string, defaultValue ...string) string func (c Ctx) Params(key string, defaultValue ...string) string
``` ```
```go title="Example" ```go title="Example"
@ -1209,7 +1209,7 @@ Defaults to the integer zero \(`0`\), if the param **doesn't** exist.
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) ParamsInt(key string) (int, error) func (c Ctx) ParamsInt(key string) (int, error)
``` ```
```go title="Example" ```go title="Example"
@ -1229,7 +1229,7 @@ This method is equivalent of using `atoi` with ctx.Params
This method is similar to BodyParser, but for path parameters. It is important to use the struct tag "params". For example, if you want to parse a path parameter with a field called Pass, you would use a struct field of params:"pass" This method is similar to BodyParser, but for path parameters. It is important to use the struct tag "params". For example, if you want to parse a path parameter with a field called Pass, you would use a struct field of params:"pass"
```go title="Signature" ```go title="Signature"
func (c *Ctx) ParamsParser(out any) error func (c Ctx) ParamsParser(out any) error
``` ```
```go title="Example" ```go title="Example"
@ -1249,7 +1249,7 @@ app.Get("/user/:id", func(c fiber.Ctx) error {
Contains the path part of the request URL. Optionally, you could override the path by passing a string. For internal redirects, you might want to call [RestartRouting](ctx.md#restartrouting) instead of [Next](ctx.md#next). Contains the path part of the request URL. Optionally, you could override the path by passing a string. For internal redirects, you might want to call [RestartRouting](ctx.md#restartrouting) instead of [Next](ctx.md#next).
```go title="Signature" ```go title="Signature"
func (c *Ctx) Path(override ...string) string func (c Ctx) Path(override ...string) string
``` ```
```go title="Example" ```go title="Example"
@ -1270,7 +1270,7 @@ app.Get("/users", func(c fiber.Ctx) error {
Contains the request protocol string: `http` or `https` for **TLS** requests. Contains the request protocol string: `http` or `https` for **TLS** requests.
```go title="Signature" ```go title="Signature"
func (c *Ctx) Protocol() string func (c Ctx) Protocol() string
``` ```
```go title="Example" ```go title="Example"
@ -1288,7 +1288,7 @@ app.Get("/", func(c fiber.Ctx) error {
Queries is a function that returns an object containing a property for each query string parameter in the route. Queries is a function that returns an object containing a property for each query string parameter in the route.
```go title="Signature" ```go title="Signature"
func (c *Ctx) Queries() map[string]string func (c Ctx) Queries() map[string]string
``` ```
```go title="Example" ```go title="Example"
@ -1356,7 +1356,7 @@ If there is **no** query string, it returns an **empty string**.
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) Query(key string, defaultValue ...string) string func (c Ctx) Query(key string, defaultValue ...string) string
``` ```
```go title="Example" ```go title="Example"
@ -1417,7 +1417,7 @@ This method is similar to [BodyParser](ctx.md#bodyparser), but for query paramet
It is important to use the struct tag "query". For example, if you want to parse a query parameter with a field called Pass, you would use a struct field of `query:"pass"`. It is important to use the struct tag "query". For example, if you want to parse a query parameter with a field called Pass, you would use a struct field of `query:"pass"`.
```go title="Signature" ```go title="Signature"
func (c *Ctx) QueryParser(out any) error func (c Ctx) QueryParser(out any) error
``` ```
```go title="Example" ```go title="Example"
@ -1459,7 +1459,7 @@ For more parser settings please look here [Config](fiber.md#config)
A struct containing the type and a slice of ranges will be returned. A struct containing the type and a slice of ranges will be returned.
```go title="Signature" ```go title="Signature"
func (c *Ctx) Range(size int) (Range, error) func (c Ctx) Range(size int) (Range, error)
``` ```
```go title="Example" ```go title="Example"
@ -1484,7 +1484,7 @@ If **not** specified, status defaults to **302 Found**.
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) Redirect(location string, status ...int) error func (c Ctx) Redirect(location string, status ...int) error
``` ```
```go title="Example" ```go title="Example"
@ -1519,7 +1519,7 @@ If you want to send queries to route, you must add **"queries"** key typed as **
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) RedirectToRoute(routeName string, params fiber.Map, status ...int) error func (c Ctx) RedirectToRoute(routeName string, params fiber.Map, status ...int) error
``` ```
```go title="Example" ```go title="Example"
@ -1552,7 +1552,7 @@ If **not** specified, status defaults to **302 Found**.
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) RedirectBack(fallback string, status ...int) error func (c Ctx) RedirectBack(fallback string, status ...int) error
``` ```
```go title="Example" ```go title="Example"
@ -1574,7 +1574,7 @@ app.Get("/back", func(c fiber.Ctx) error {
Renders a view with data and sends a `text/html` response. By default `Render` uses the default [**Go Template engine**](https://pkg.go.dev/html/template/). If you want to use another View engine, please take a look at our [**Template middleware**](https://docs.gofiber.io/template). Renders a view with data and sends a `text/html` response. By default `Render` uses the default [**Go Template engine**](https://pkg.go.dev/html/template/). If you want to use another View engine, please take a look at our [**Template middleware**](https://docs.gofiber.io/template).
```go title="Signature" ```go title="Signature"
func (c *Ctx) Render(name string, bind any, layouts ...string) error func (c Ctx) Render(name string, bind any, layouts ...string) error
``` ```
## Request ## Request
@ -1582,7 +1582,7 @@ func (c *Ctx) Render(name string, bind any, layouts ...string) error
Request return the [\*fasthttp.Request](https://godoc.org/github.com/valyala/fasthttp#Request) pointer Request return the [\*fasthttp.Request](https://godoc.org/github.com/valyala/fasthttp#Request) pointer
```go title="Signature" ```go title="Signature"
func (c *Ctx) Request() *fasthttp.Request func (c Ctx) Request() *fasthttp.Request
``` ```
```go title="Example" ```go title="Example"
@ -1598,7 +1598,7 @@ This method is similar to [BodyParser](ctx.md#bodyparser), but for request heade
It is important to use the struct tag "reqHeader". For example, if you want to parse a request header with a field called Pass, you would use a struct field of `reqHeader:"pass"`. It is important to use the struct tag "reqHeader". For example, if you want to parse a request header with a field called Pass, you would use a struct field of `reqHeader:"pass"`.
```go title="Signature" ```go title="Signature"
func (c *Ctx) ReqHeaderParser(out any) error func (c Ctx) ReqHeaderParser(out any) error
``` ```
```go title="Example" ```go title="Example"
@ -1632,7 +1632,7 @@ app.Get("/", func(c fiber.Ctx) error {
Response return the [\*fasthttp.Response](https://godoc.org/github.com/valyala/fasthttp#Response) pointer Response return the [\*fasthttp.Response](https://godoc.org/github.com/valyala/fasthttp#Response) pointer
```go title="Signature" ```go title="Signature"
func (c *Ctx) Response() *fasthttp.Response func (c Ctx) Response() *fasthttp.Response
``` ```
```go title="Example" ```go title="Example"
@ -1648,7 +1648,7 @@ app.Get("/", func(c fiber.Ctx) error {
Instead of executing the next method when calling [Next](ctx.md#next), **RestartRouting** restarts execution from the first method that matches the current route. This may be helpful after overriding the path, i. e. an internal redirect. Note that handlers might be executed again which could result in an infinite loop. Instead of executing the next method when calling [Next](ctx.md#next), **RestartRouting** restarts execution from the first method that matches the current route. This may be helpful after overriding the path, i. e. an internal redirect. Note that handlers might be executed again which could result in an infinite loop.
```go title="Signature" ```go title="Signature"
func (c *Ctx) RestartRouting() error func (c Ctx) RestartRouting() error
``` ```
```go title="Example" ```go title="Example"
@ -1667,7 +1667,7 @@ app.Get("/old", func(c fiber.Ctx) error {
Returns the matched [Route](https://pkg.go.dev/github.com/gofiber/fiber?tab=doc#Route) struct. Returns the matched [Route](https://pkg.go.dev/github.com/gofiber/fiber?tab=doc#Route) struct.
```go title="Signature" ```go title="Signature"
func (c *Ctx) Route() *Route func (c Ctx) Route() *Route
``` ```
```go title="Example" ```go title="Example"
@ -1703,7 +1703,7 @@ func MyMiddleware() fiber.Handler {
Method is used to save **any** multipart file to disk. Method is used to save **any** multipart file to disk.
```go title="Signature" ```go title="Signature"
func (c *Ctx) SaveFile(fh *multipart.FileHeader, path string) error func (c Ctx) SaveFile(fh *multipart.FileHeader, path string) error
``` ```
```go title="Example" ```go title="Example"
@ -1736,7 +1736,7 @@ app.Post("/", func(c fiber.Ctx) error {
Method is used to save **any** multipart file to an external storage system. Method is used to save **any** multipart file to an external storage system.
```go title="Signature" ```go title="Signature"
func (c *Ctx) SaveFileToStorage(fileheader *multipart.FileHeader, path string, storage Storage) error func (c Ctx) SaveFileToStorage(fileheader *multipart.FileHeader, path string, storage Storage) error
``` ```
```go title="Example" ```go title="Example"
@ -1771,7 +1771,7 @@ app.Post("/", func(c fiber.Ctx) error {
A boolean property that is `true` , if a **TLS** connection is established. A boolean property that is `true` , if a **TLS** connection is established.
```go title="Signature" ```go title="Signature"
func (c *Ctx) Secure() bool func (c Ctx) Secure() bool
``` ```
```go title="Example" ```go title="Example"
@ -1784,7 +1784,7 @@ c.Protocol() == "https"
Sets the HTTP response body. Sets the HTTP response body.
```go title="Signature" ```go title="Signature"
func (c *Ctx) Send(body []byte) error func (c Ctx) Send(body []byte) error
``` ```
```go title="Example" ```go title="Example"
@ -1800,8 +1800,8 @@ Use this if you **don't need** type assertion, recommended for **faster** perfor
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) SendString(body string) error func (c Ctx) SendString(body string) error
func (c *Ctx) SendStream(stream io.Reader, size ...int) error func (c Ctx) SendStream(stream io.Reader, size ...int) error
``` ```
```go title="Example" ```go title="Example"
@ -1823,7 +1823,7 @@ Method doesn´t use **gzipping** by default, set it to **true** to enable.
::: :::
```go title="Signature" title="Signature" ```go title="Signature" title="Signature"
func (c *Ctx) SendFile(file string, compress ...bool) error func (c Ctx) SendFile(file string, compress ...bool) error
``` ```
```go title="Example" ```go title="Example"
@ -1858,7 +1858,7 @@ You can find all used status codes and messages [here](https://github.com/gofibe
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) SendStatus(status int) error func (c Ctx) SendStatus(status int) error
``` ```
```go title="Example" ```go title="Example"
@ -1877,7 +1877,7 @@ app.Get("/not-found", func(c fiber.Ctx) error {
Sets the responses HTTP header field to the specified `key`, `value`. Sets the responses HTTP header field to the specified `key`, `value`.
```go title="Signature" ```go title="Signature"
func (c *Ctx) Set(key string, val string) func (c Ctx) Set(key string, val string)
``` ```
```go title="Example" ```go title="Example"
@ -1968,7 +1968,7 @@ app.Get("/query", func(c fiber.Ctx) error {
Sets the user specified implementation for context interface. Sets the user specified implementation for context interface.
```go title="Signature" ```go title="Signature"
func (c *Ctx) SetUserContext(ctx context.Context) func (c Ctx) SetUserContext(ctx context.Context)
``` ```
```go title="Example" ```go title="Example"
@ -1986,7 +1986,7 @@ app.Get("/", func(c fiber.Ctx) error {
[https://expressjs.com/en/4x/api.html\#req.stale](https://expressjs.com/en/4x/api.html#req.stale) [https://expressjs.com/en/4x/api.html\#req.stale](https://expressjs.com/en/4x/api.html#req.stale)
```go title="Signature" ```go title="Signature"
func (c *Ctx) Stale() bool func (c Ctx) Stale() bool
``` ```
## Status ## Status
@ -1998,7 +1998,7 @@ Method is a **chainable**.
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) Status(status int) *Ctx func (c Ctx) Status(status int) Ctx
``` ```
```go title="Example" ```go title="Example"
@ -2023,7 +2023,7 @@ Returns a string slice of subdomains in the domain name of the request.
The application property subdomain offset, which defaults to `2`, is used for determining the beginning of the subdomain segments. The application property subdomain offset, which defaults to `2`, is used for determining the beginning of the subdomain segments.
```go title="Signature" ```go title="Signature"
func (c *Ctx) Subdomains(offset ...int) []string func (c Ctx) Subdomains(offset ...int) []string
``` ```
```go title="Example" ```go title="Example"
@ -2042,7 +2042,7 @@ app.Get("/", func(c fiber.Ctx) error {
Sets the [Content-Type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type) HTTP header to the MIME type listed [here](https://github.com/nginx/nginx/blob/master/conf/mime.types) specified by the file **extension**. Sets the [Content-Type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type) HTTP header to the MIME type listed [here](https://github.com/nginx/nginx/blob/master/conf/mime.types) specified by the file **extension**.
```go title="Signature" ```go title="Signature"
func (c *Ctx) Type(ext string, charset ...string) *Ctx func (c Ctx) Type(ext string, charset ...string) Ctx
``` ```
```go title="Example" ```go title="Example"
@ -2063,7 +2063,7 @@ UserContext returns a context implementation that was set by user earlier
or returns a non-nil, empty context, if it was not set earlier. or returns a non-nil, empty context, if it was not set earlier.
```go title="Signature" ```go title="Signature"
func (c *Ctx) UserContext() context.Context func (c Ctx) UserContext() context.Context
``` ```
```go title="Example" ```go title="Example"
@ -2084,7 +2084,7 @@ Multiple fields are **allowed**.
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) Vary(fields ...string) func (c Ctx) Vary(fields ...string)
``` ```
```go title="Example" ```go title="Example"
@ -2107,7 +2107,7 @@ app.Get("/", func(c fiber.Ctx) error {
Write adopts the Writer interface Write adopts the Writer interface
```go title="Signature" ```go title="Signature"
func (c *Ctx) Write(p []byte) (n int, err error) func (c Ctx) Write(p []byte) (n int, err error)
``` ```
```go title="Example" ```go title="Example"
@ -2123,7 +2123,7 @@ app.Get("/", func(c fiber.Ctx) error {
Writef adopts the string with variables Writef adopts the string with variables
```go title="Signature" ```go title="Signature"
func (c *Ctx) Writef(f string, a ...any) (n int, err error) func (c Ctx) Writef(f string, a ...any) (n int, err error)
``` ```
```go title="Example" ```go title="Example"
@ -2140,7 +2140,7 @@ app.Get("/", func(c fiber.Ctx) error {
WriteString adopts the string WriteString adopts the string
```go title="Signature" ```go title="Signature"
func (c *Ctx) WriteString(s string) (n int, err error) func (c Ctx) WriteString(s string) (n int, err error)
``` ```
```go title="Example" ```go title="Example"
@ -2156,7 +2156,7 @@ app.Get("/", func(c fiber.Ctx) error {
A Boolean property, that is `true`, if the requests [X-Requested-With](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) header field is [XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest), indicating that the request was issued by a client library \(such as [jQuery](https://api.jquery.com/jQuery.ajax/)\). A Boolean property, that is `true`, if the requests [X-Requested-With](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) header field is [XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest), indicating that the request was issued by a client library \(such as [jQuery](https://api.jquery.com/jQuery.ajax/)\).
```go title="Signature" ```go title="Signature"
func (c *Ctx) XHR() bool func (c Ctx) XHR() bool
``` ```
```go title="Example" ```go title="Example"
@ -2178,7 +2178,7 @@ XML also sets the content header to **application/xml**.
::: :::
```go title="Signature" ```go title="Signature"
func (c *Ctx) XML(data any) error func (c Ctx) XML(data any) error
``` ```
```go title="Example" ```go title="Example"