Help us shape the future of Go! Take the 2026 Go Developer Survey

fiber

package module
v1.20.0-alpha.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 30, 2026 License: MIT Imports: 51 Imported by: 0

README

Fiber

Doc Go Release Test Report Card Codecov License

Fiber HTTP driver for github.com/gradii/framework, a fork of goravel/fiber published as github.com/gradii/fiber.

Install

Run the command below in your project to install the package automatically:

./artisan package:install github.com/gradii/fiber

Or check the setup file to install the package manually.

Configuration

You can define the template configuration. If omitted, DefaultTemplate() is used automatically as a fallback, which loads views from resources/views and any registered package views.

You can provide a custom template configuration in two forms:

  • func() (fiber.Views, error) — a callback that returns a custom template engine (e.g. to configure custom delimiters or a FuncMap).
  • fiber.Views — a pre-built template engine instance.

Custom example:

import (
    "html/template"

    "github.com/gofiber/fiber/v3"
    goravelfiber "github.com/gradii/fiber"
)

"template": func() (fiber.Views, error) {
    return goravelfiber.NewTemplate(goravelfiber.RenderOptions{
        Delims: &goravelfiber.Delims{Left: "{[", Right: "]}"},
        FuncMap: template.FuncMap{
            "upper": strings.ToUpper,
        },
    })
},

Testing

Run command below to run test:

go test ./...

Documentation

Index

Constants

View Source
const BindingRoute = "goravel.fiber.route"

Variables

View Source
var (
	App              foundation.Application
	ConfigFacade     config.Config
	LogFacade        log.Log
	ValidationFacade validation.Validation
	ViewFacade       view.View
)

Functions

func Background

func Background() http.Context

func Cors

func Cors() http.Middleware

func DefaultTemplate

func DefaultTemplate() (fiber.Views, error)

DefaultTemplate creates a Template with package view directories from ViewFacade.RegisteredViews() and package view filesystems from ViewFacade.RegisteredViewFS(). Returns a valid fiber.Views even when there are no template files.

func NewAction

func NewAction(method, path, handler string) contractsroute.Action

func NewContextRequest

func NewContextRequest(ctx *Context, log log.Log, validation contractsvalidate.Validation) contractshttp.ContextRequest

func NewContextResponse

func NewContextResponse(instance fiber.Ctx, origin contractshttp.ResponseOrigin, ctx *Context) contractshttp.ContextResponse

func NewGroup

func NewGroup(config config.Config, instance *fiber.App, prefix string, middlewares []contractshttp.Middleware, lastMiddlewares []contractshttp.Middleware) contractsroute.Router

func NewStatus

func NewStatus(instance fiber.Ctx, code int) contractshttp.ResponseStatus

func ResponseMiddleware

func ResponseMiddleware() contractshttp.Middleware

func Timeout

func Timeout(timeout time.Duration) contractshttp.Middleware

Timeout creates middleware to set a timeout for a request. NOTICE: Timed-out requests respond with 408 Request Timeout, pinned here because Fiber v3.6 changed its timeout middleware default to 503. It relies on Fiber's timeout middleware so a timed-out request does not recycle the underlying request context into a later request. For details, see https://github.com/valyala/fasthttp/issues/965

Types

type Action

type Action struct {
	// contains filtered or unexported fields
}

func (*Action) Name

func (r *Action) Name(name string) contractsroute.Action

func (*Action) WithoutMiddleware

func (r *Action) WithoutMiddleware(middleware ...contractshttp.Middleware) contractsroute.Action

type Context

type Context struct {
	// contains filtered or unexported fields
}

func NewContext

func NewContext(c fiber.Ctx) *Context

func (*Context) Context

func (c *Context) Context() context.Context

func (*Context) Deadline

func (c *Context) Deadline() (deadline time.Time, ok bool)

func (*Context) Done

func (c *Context) Done() <-chan struct{}

func (*Context) Err

func (c *Context) Err() error

func (*Context) Instance

func (c *Context) Instance() fiber.Ctx

func (*Context) Request

func (c *Context) Request() http.ContextRequest

func (*Context) Response

func (c *Context) Response() http.ContextResponse

func (*Context) Value

func (c *Context) Value(key any) any

func (*Context) WithContext

func (c *Context) WithContext(ctx context.Context)

func (*Context) WithValue

func (c *Context) WithValue(key any, value any)

type ContextRequest

type ContextRequest struct {
	// contains filtered or unexported fields
}

func (*ContextRequest) Abort

func (r *ContextRequest) Abort(code ...int)

func (*ContextRequest) AbortWithStatus

func (r *ContextRequest) AbortWithStatus(code int)

DEPRECATED: Use Abort instead

func (*ContextRequest) AbortWithStatusJson

func (r *ContextRequest) AbortWithStatusJson(code int, jsonObj any)

DEPRECATED: Use Response().Json().Abort() instead

func (*ContextRequest) All

func (r *ContextRequest) All() map[string]any

func (*ContextRequest) Bind

func (r *ContextRequest) Bind(obj any) error

func (*ContextRequest) BindQuery

func (r *ContextRequest) BindQuery(obj any) error

func (*ContextRequest) Cookie

func (r *ContextRequest) Cookie(key string, defaultValue ...string) string

func (*ContextRequest) File

func (*ContextRequest) Files

func (r *ContextRequest) Files(name string) ([]contractsfilesystem.File, error)

func (*ContextRequest) Form

func (r *ContextRequest) Form(key string, defaultValue ...string) string

func (*ContextRequest) FullUrl

func (r *ContextRequest) FullUrl() string

func (*ContextRequest) HasSession

func (r *ContextRequest) HasSession() bool

func (*ContextRequest) Header

func (r *ContextRequest) Header(key string, defaultValue ...string) string

func (*ContextRequest) Headers

func (r *ContextRequest) Headers() http.Header

func (*ContextRequest) Host

func (r *ContextRequest) Host() string

func (*ContextRequest) Info

func (r *ContextRequest) Info() contractshttp.Info

func (*ContextRequest) Input

func (r *ContextRequest) Input(key string, defaultValue ...string) string

func (*ContextRequest) InputArray

func (r *ContextRequest) InputArray(key string, defaultValue ...[]string) []string

func (*ContextRequest) InputBool

func (r *ContextRequest) InputBool(key string, defaultValue ...bool) bool

func (*ContextRequest) InputInt

func (r *ContextRequest) InputInt(key string, defaultValue ...int) int

func (*ContextRequest) InputInt64

func (r *ContextRequest) InputInt64(key string, defaultValue ...int64) int64

func (*ContextRequest) InputMap

func (r *ContextRequest) InputMap(key string, defaultValue ...map[string]any) map[string]any

func (*ContextRequest) InputMapArray

func (r *ContextRequest) InputMapArray(key string, defaultValue ...[]map[string]any) []map[string]any

func (*ContextRequest) Ip

func (r *ContextRequest) Ip() string

func (*ContextRequest) Json

func (r *ContextRequest) Json(key string, defaultValue ...string) string

func (*ContextRequest) Method

func (r *ContextRequest) Method() string

func (*ContextRequest) Name

func (r *ContextRequest) Name() string

func (*ContextRequest) Next

func (r *ContextRequest) Next()

func (*ContextRequest) Origin

func (r *ContextRequest) Origin() *http.Request

func (*ContextRequest) OriginPath

func (r *ContextRequest) OriginPath() string

func (*ContextRequest) Path

func (r *ContextRequest) Path() string

func (*ContextRequest) Queries

func (r *ContextRequest) Queries() map[string]string

func (*ContextRequest) Query

func (r *ContextRequest) Query(key string, defaultValue ...string) string

func (*ContextRequest) QueryArray

func (r *ContextRequest) QueryArray(key string) []string

func (*ContextRequest) QueryBool

func (r *ContextRequest) QueryBool(key string, defaultValue ...bool) bool

func (*ContextRequest) QueryInt

func (r *ContextRequest) QueryInt(key string, defaultValue ...int) int

func (*ContextRequest) QueryInt64

func (r *ContextRequest) QueryInt64(key string, defaultValue ...int64) int64

func (*ContextRequest) QueryMap

func (r *ContextRequest) QueryMap(key string) map[string]string

func (*ContextRequest) Route

func (r *ContextRequest) Route(key string) string

func (*ContextRequest) RouteInt

func (r *ContextRequest) RouteInt(key string) int

func (*ContextRequest) RouteInt64

func (r *ContextRequest) RouteInt64(key string) int64

func (*ContextRequest) Session

func (r *ContextRequest) Session() contractsession.Session

func (*ContextRequest) SetSession

func (*ContextRequest) Url

func (r *ContextRequest) Url() string

func (*ContextRequest) Validate

func (r *ContextRequest) Validate(rules map[string]any, options ...contractsvalidate.Option) (contractsvalidate.Validator, error)

func (*ContextRequest) ValidateRequest

func (r *ContextRequest) ValidateRequest(request contractshttp.FormRequest) (contractsvalidate.Errors, error)

type ContextResponse

type ContextResponse struct {
	// contains filtered or unexported fields
}

func (*ContextResponse) Cookie

func (*ContextResponse) Data

func (r *ContextResponse) Data(code int, contentType string, data []byte) contractshttp.AbortableResponse

func (*ContextResponse) Download

func (r *ContextResponse) Download(filepath, filename string) contractshttp.Response

func (*ContextResponse) File

func (r *ContextResponse) File(filepath string) contractshttp.Response

func (*ContextResponse) Flush

func (r *ContextResponse) Flush()

func (*ContextResponse) Header

func (r *ContextResponse) Header(key, value string) contractshttp.ContextResponse

func (*ContextResponse) Json

func (*ContextResponse) NoContent

func (r *ContextResponse) NoContent(code ...int) contractshttp.AbortableResponse

func (*ContextResponse) Origin

func (*ContextResponse) Redirect

func (r *ContextResponse) Redirect(code int, location string) contractshttp.AbortableResponse

func (*ContextResponse) Status

func (*ContextResponse) Stream

func (*ContextResponse) String

func (r *ContextResponse) String(code int, format string, values ...any) contractshttp.AbortableResponse

func (*ContextResponse) Success

func (*ContextResponse) View

func (*ContextResponse) WithoutCookie

func (r *ContextResponse) WithoutCookie(name string) contractshttp.ContextResponse

func (*ContextResponse) Writer

func (r *ContextResponse) Writer() http.ResponseWriter

type DataResponse

type DataResponse struct {
	// contains filtered or unexported fields
}

func (*DataResponse) Abort

func (r *DataResponse) Abort() error

func (*DataResponse) Render

func (r *DataResponse) Render() error

type Delims

type Delims struct {
	Left  string
	Right string
}

Delims represents custom delimiters for template actions.

type DownloadResponse

type DownloadResponse struct {
	// contains filtered or unexported fields
}

func (*DownloadResponse) Render

func (r *DownloadResponse) Render() error

type FileResponse

type FileResponse struct {
	// contains filtered or unexported fields
}

func (*FileResponse) Render

func (r *FileResponse) Render() error

type Group

type Group struct {
	// contains filtered or unexported fields
}

func (*Group) Any

func (*Group) Delete

func (r *Group) Delete(path string, handler contractshttp.HandlerFunc) contractsroute.Action

func (*Group) Get

func (*Group) Group

func (r *Group) Group(handler contractsroute.GroupFunc)

func (*Group) Middleware

func (r *Group) Middleware(middlewares ...contractshttp.Middleware) contractsroute.Router

func (*Group) Options

func (r *Group) Options(path string, handler contractshttp.HandlerFunc) contractsroute.Action

func (*Group) Patch

func (r *Group) Patch(path string, handler contractshttp.HandlerFunc) contractsroute.Action

func (*Group) Post

func (r *Group) Post(path string, handler contractshttp.HandlerFunc) contractsroute.Action

func (*Group) Prefix

func (r *Group) Prefix(path string) contractsroute.Router

func (*Group) Put

func (*Group) Resource

func (r *Group) Resource(path string, controller contractshttp.ResourceController) contractsroute.Action

func (*Group) Static

func (r *Group) Static(path, root string) contractsroute.Action

func (*Group) StaticFS

func (r *Group) StaticFS(path string, fileSystem http.FileSystem) contractsroute.Action

func (*Group) StaticFile

func (r *Group) StaticFile(path, filePath string) contractsroute.Action

func (*Group) WithoutMiddleware

func (r *Group) WithoutMiddleware(middlewares ...contractshttp.Middleware) contractsroute.Router

type HtmlResponse

type HtmlResponse struct {
	// contains filtered or unexported fields
}

func (*HtmlResponse) Render

func (r *HtmlResponse) Render() error

type JsonResponse

type JsonResponse struct {
	// contains filtered or unexported fields
}

func (*JsonResponse) Abort

func (r *JsonResponse) Abort() error

func (*JsonResponse) Render

func (r *JsonResponse) Render() error

type NoContentResponse

type NoContentResponse struct {
	// contains filtered or unexported fields
}

func (*NoContentResponse) Abort

func (r *NoContentResponse) Abort() error

func (*NoContentResponse) Render

func (r *NoContentResponse) Render() error

type RedirectResponse

type RedirectResponse struct {
	// contains filtered or unexported fields
}

func (*RedirectResponse) Abort

func (r *RedirectResponse) Abort() error

func (*RedirectResponse) Render

func (r *RedirectResponse) Render() error

type RenderOptions

type RenderOptions struct {
	Delims     *Delims
	FuncMap    template.FuncMap
	ExtraPaths []string
	ExtraFS    []fs.FS
}

RenderOptions configures template parsing and rendering.

type ResponseOrigin

type ResponseOrigin struct {
	Ctx fiber.Ctx
}

func (*ResponseOrigin) Body

func (w *ResponseOrigin) Body() *bytes.Buffer

func (*ResponseOrigin) Header

func (w *ResponseOrigin) Header() http.Header

func (*ResponseOrigin) Size

func (w *ResponseOrigin) Size() int

func (*ResponseOrigin) Status

func (w *ResponseOrigin) Status() int

type Route

type Route struct {
	route.Router
	// contains filtered or unexported fields
}

Route fiber route Route fiber 路由

func NewRoute

func NewRoute(config config.Config, parameters map[string]any) (*Route, error)

NewRoute creates new fiber route instance NewRoute 创建新的 fiber 路由实例

func (*Route) Fallback

func (r *Route) Fallback(handler contractshttp.HandlerFunc)

Fallback set fallback handler Fallback 设置回退处理程序

func (*Route) GetGlobalMiddleware

func (r *Route) GetGlobalMiddleware() []contractshttp.Middleware

GetGlobalMiddleware gets global middleware

func (*Route) GetRoutes

func (r *Route) GetRoutes() []contractshttp.Info

GetRoutes get all routes

func (*Route) GlobalMiddleware

func (r *Route) GlobalMiddleware(middleware ...contractshttp.Middleware)

GlobalMiddleware set global middleware GlobalMiddleware 设置全局中间件

func (*Route) Info

func (r *Route) Info(name string) contractshttp.Info

func (*Route) Listen

func (r *Route) Listen(l net.Listener) error

Listen listen server Listen 监听服务器

func (*Route) ListenTLS

func (r *Route) ListenTLS(l net.Listener) error

ListenTLS listen TLS server ListenTLS 监听 TLS 服务器

func (*Route) ListenTLSWithCert

func (r *Route) ListenTLSWithCert(l net.Listener, certFile, keyFile string) error

ListenTLSWithCert listen TLS server with cert file and key file ListenTLSWithCert 使用证书文件和密钥文件监听 TLS 服务器

func (*Route) Recover

func (r *Route) Recover(callback func(ctx contractshttp.Context, err any))

func (*Route) Run

func (r *Route) Run(host ...string) error

Run run server Run 运行服务器

func (*Route) RunTLS

func (r *Route) RunTLS(host ...string) error

RunTLS run TLS server RunTLS 运行 TLS 服务器

func (*Route) RunTLSWithCert

func (r *Route) RunTLSWithCert(host, certFile, keyFile string) error

RunTLSWithCert run TLS server with cert file and key file RunTLSWithCert 使用证书文件和密钥文件运行 TLS 服务器

func (*Route) ServeHTTP

func (r *Route) ServeHTTP(writer http.ResponseWriter, request *http.Request)

ServeHTTP serve http request (Not support) ServeHTTP 服务 HTTP 请求 (不支持)

func (*Route) SetGlobalMiddleware

func (r *Route) SetGlobalMiddleware(middlewares []contractshttp.Middleware)

SetGlobalMiddleware sets global middleware

func (*Route) Shutdown

func (r *Route) Shutdown(ctx ...context.Context) error

Shutdown gracefully shuts down the server Shutdown 优雅退出HTTP Server

func (*Route) Test

func (r *Route) Test(request *http.Request) (*http.Response, error)

Test for unit test Test 用于单元测试

type ServiceProvider

type ServiceProvider struct{}

func (*ServiceProvider) Boot

func (r *ServiceProvider) Boot(app foundation.Application)

func (*ServiceProvider) Register

func (r *ServiceProvider) Register(app foundation.Application)

func (*ServiceProvider) Relationship

func (r *ServiceProvider) Relationship() binding.Relationship

type Status

type Status struct {
	// contains filtered or unexported fields
}

func (*Status) Data

func (r *Status) Data(contentType string, data []byte) contractshttp.AbortableResponse

func (*Status) Json

func (*Status) Stream

func (r *Status) Stream(step func(w contractshttp.StreamWriter) error) contractshttp.Response

func (*Status) String

func (r *Status) String(format string, values ...any) contractshttp.AbortableResponse

type StreamResponse

type StreamResponse struct {
	// contains filtered or unexported fields
}

func (*StreamResponse) Render

func (r *StreamResponse) Render() (err error)

type StringResponse

type StringResponse struct {
	// contains filtered or unexported fields
}

func (*StringResponse) Abort

func (r *StringResponse) Abort() error

func (*StringResponse) Render

func (r *StringResponse) Render() error

type Template

type Template struct {
	// contains filtered or unexported fields
}

Template implements fiber.Views for multi-directory template loading. Templates are loaded from the app's resources/views first, then from registered package directories. App-defined templates take priority; collisions between packages log a warning.

func NewTemplate

func NewTemplate(options RenderOptions) (*Template, error)

NewTemplate creates a Template by parsing .tmpl files from the app views directory, any extra paths and any extra filesystems. A file without a {{ define }} block is registered under its path relative to the source root. If no files are found, the Template is still valid but Render will return an error for any template name.

func (*Template) Load

func (m *Template) Load() error

Load is a no-op because template parsing happens eagerly in NewTemplate. This method exists solely to satisfy the fiber.Views interface.

func (*Template) Render

func (m *Template) Render(w io.Writer, name string, data any, layouts ...string) error

Render executes the named template, writing the result to w. If layouts are provided, the first layout is rendered instead, with the named template available via {{ template }}. Returns fiber.ErrInternalServerError if no templates were loaded.

type View

type View struct {
	// contains filtered or unexported fields
}

func NewView

func NewView(instance fiber.Ctx, ctx *Context) *View

func (*View) First

func (receive *View) First(views []string, data ...any) contractshttp.Response

func (*View) Make

func (receive *View) Make(view string, data ...any) contractshttp.Response

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL