zoox

package module
v1.0.31 Latest Latest
Warning

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

Go to latest
Published: Jul 13, 2022 License: MIT Imports: 25 Imported by: 50

README

Zoox - A Lightweight Web Framework

PkgGoDev Build Status Go Report Card Coverage Status GitHub issues Release

Installation

To install the package, run:

go get github.com/go-zoox/zoox

Getting Started

package main

import "github.com/go-zoox/zoox"

func main() {
	app := zoox.Default()

	app.Get("/", func(ctx *zoox.Context) {
		ctx.Write([]byte("helloworld"))
	})

	app.Run(":8080")
}

License

GoZoox is released under the MIT License.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultGroupsFns = map[string]func(r *RouterGroup){}

DefaultGroupsFns ...

View Source
var DefaultMiddlewares = map[string]func(app *Application){}

DefaultMiddlewares is the default global middleware

View Source
var Version = "1.0.31"

Version is the current version of the package.

Functions

func DefaultGroup added in v1.0.16

func DefaultGroup(prefix string, fn func(r *RouterGroup))

DefaultGroup ...

func DefaultMiddleware added in v1.0.16

func DefaultMiddleware(name string, fn func(app *Application))

DefaultMiddleware ...

Types

type Application

type Application struct {
	*RouterGroup

	//
	SecretKey string
	LogLevel  string
	//
	CacheConfig *typing.Config
	Cache       *Cache
	//
	Env    *Env
	Logger *logger.Logger
	// contains filtered or unexported fields
}

Application is the handler for all requests.

func New

func New() *Application

New is the constructor of zoox.Application.

func (*Application) Fallback

func (app *Application) Fallback(h HandlerFunc)

Fallback is the default handler for all requests.

func (*Application) NotFound

func (app *Application) NotFound(h HandlerFunc)

NotFound defines the 404 handler, replaced of built in not found handler.

func (*Application) Run

func (app *Application) Run(addr ...string)

Run defines the method to start the server

func (*Application) ServeHTTP

func (app *Application) ServeHTTP(w http.ResponseWriter, req *http.Request)

func (*Application) SetTemplates

func (app *Application) SetTemplates(dir string, fns ...template.FuncMap)

SetTemplates set the template

type Cache added in v1.0.24

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

Cache ...

func (*Cache) Del added in v1.0.24

func (c *Cache) Del(key string) error

Del ...

func (*Cache) Get added in v1.0.24

func (c *Cache) Get(key string, value interface{}) error

Get ...

func (*Cache) Set added in v1.0.24

func (c *Cache) Set(key string, value interface{}, ttl time.Duration) error

Set ...

type Context

type Context struct {
	// origin objects
	Writer  ResponseWriter
	Request *http.Request
	// request
	Method string
	Path   string

	// response
	StatusCode int
	//
	Cookie *Cookie
	//
	Session *Session
	//
	Cache *Cache

	//
	App *Application
	//
	State map[string]interface{}
	//
	Env *Env
	//
	Logger *logger.Logger
	// contains filtered or unexported fields
}

Context is the request context

func (*Context) AcceptJSON added in v1.0.19

func (ctx *Context) AcceptJSON() bool

AcceptJSON returns true if the request accepts json.

func (*Context) AddHeader added in v1.0.6

func (ctx *Context) AddHeader(key string, value string)

AddHeader adds a header to the response.

func (*Context) BasicAuth added in v1.0.1

func (ctx *Context) BasicAuth() (string, string, bool)

BasicAuth returns the user/password pair for Basic Authentication.

func (*Context) BindForm added in v1.0.1

func (ctx *Context) BindForm(obj interface{}) error

BindForm binds the query into the given struct.

func (*Context) BindHeader added in v1.0.1

func (ctx *Context) BindHeader(obj interface{}) error

BindHeader binds the header into the given struct.

func (*Context) BindJSON added in v1.0.1

func (ctx *Context) BindJSON(obj interface{}) error

BindJSON binds the request body into the given struct.

func (*Context) BindParams added in v1.0.1

func (ctx *Context) BindParams(obj interface{}) error

BindParams binds the params into the given struct.

func (*Context) BindQuery added in v1.0.1

func (ctx *Context) BindQuery(obj interface{}) error

BindQuery binds the query into the given struct.

func (*Context) BindYAML added in v1.0.1

func (ctx *Context) BindYAML(obj interface{}) error

BindYAML binds the request body into the given struct.

func (*Context) Bodies added in v1.0.1

func (ctx *Context) Bodies() map[string]any

Bodies gets all bodies.

func (*Context) Cookies added in v1.0.1

func (ctx *Context) Cookies() map[string]string

Cookies gets all cookies.

func (*Context) Error

func (ctx *Context) Error(status int, message string)

Error writes the given error to the response.

func (*Context) Fail

func (ctx *Context) Fail(code int, message string)

Fail writes the given error with code-message-result specification to the response.

func (*Context) File added in v1.0.1

func (ctx *Context) File(key string) multipart.File

File gets the file by key.

func (*Context) Files added in v1.0.1

func (ctx *Context) Files() map[string]*multipart.FileHeader

Files gets all files.

func (*Context) Form added in v1.0.5

func (ctx *Context) Form(key string, defaultValue ...string) string

Form returns the form data from POST or PUT request body.

func (*Context) Forms added in v1.0.1

func (ctx *Context) Forms() *safe.Map

Forms gets all forms.

func (*Context) Get added in v1.0.20

func (ctx *Context) Get(key string) string

Get alias for ctx.Header.

func (*Context) HTML

func (ctx *Context) HTML(code int, name string, data interface{})

HTML renders the given template with the given data and writes the result

func (*Context) Header added in v1.0.1

func (ctx *Context) Header(key string) string

Header gets the header value by key.

func (*Context) Headers added in v1.0.1

func (ctx *Context) Headers() *safe.Map

Headers gets all headers.

func (*Context) Host added in v1.0.4

func (ctx *Context) Host() string

Host gets the host from HTTP Header. format: `host:port`

func (*Context) IP added in v1.0.4

func (ctx *Context) IP() string

IP gets the ip from X-Forwarded-For or X-Real-IP or RemoteAddr.

func (*Context) JSON

func (ctx *Context) JSON(status int, obj interface{})

JSON serializes the given struct as JSON into the response body.

func (*Context) Next

func (ctx *Context) Next()

Next runs the next handler in the middleware stack

func (*Context) Origin added in v1.0.20

func (ctx *Context) Origin() string

Origin returns the origin of the request.

func (*Context) Param

func (ctx *Context) Param(key string, defaultValue ...string) string

Param returns the named URL parameter value if it exists.

func (*Context) Params

func (ctx *Context) Params() *safe.Map

Params gets all params.

func (*Context) Queries added in v1.0.1

func (ctx *Context) Queries() *safe.Map

Queries gets all queries.

func (*Context) Query

func (ctx *Context) Query(key string, defaultValue ...string) string

Query returns the query string parameter with the given name.

func (*Context) Redirect

func (ctx *Context) Redirect(url string, status ...int)

Redirect redirects the request to the given URL.

func (*Context) Render

func (ctx *Context) Render(code int, name string, data interface{})

Render renders a template with data and writes the result to the response.

func (*Context) SaveFile added in v1.0.1

func (ctx *Context) SaveFile(key, path string) error

SaveFile saves the file to the given path.

func (*Context) Set added in v1.0.5

func (ctx *Context) Set(key string, value string)

Set alias for ctx.SetHeader.

func (*Context) SetHeader

func (ctx *Context) SetHeader(key string, value string)

SetHeader sets a header in the response.

func (*Context) Status

func (ctx *Context) Status(status int)

Status sets the HTTP response status code.

func (*Context) Stream added in v1.0.1

func (ctx *Context) Stream() io.ReadCloser

Stream get the body stream.

func (*Context) String

func (ctx *Context) String(status int, format string, values ...interface{})

String writes the given string to the response.

func (*Context) Success

func (ctx *Context) Success(result interface{})

Success writes the given data with code-message-result specification to the response.

func (*Context) URL added in v1.0.4

func (ctx *Context) URL() string

URL is http.Request.RequestURI.

func (*Context) Write

func (ctx *Context) Write(b []byte)

Write writes the data to the connection.

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

Cookie is a middleware for handling cookie.

func (*Cookie) Del added in v1.0.5

func (c *Cookie) Del(name string)

Del deletes response cookie with the given name.

func (*Cookie) Get added in v1.0.5

func (c *Cookie) Get(name string) string

Get gets request cookie with the given name.

func (*Cookie) Set added in v1.0.5

func (c *Cookie) Set(name string, value string, maxAge time.Duration)

Set sets response cookie with the given name and value.

type Env added in v1.0.17

type Env struct {
}

Env ...

func (*Env) Get added in v1.0.17

func (e *Env) Get(key string) string

Get ...

type H

type H map[string]interface{}

H is a shortcut for map[string]interface{}

type HandlerFunc

type HandlerFunc func(ctx *Context)

HandlerFunc defines the request handler used by gee

func NotFound

func NotFound() HandlerFunc

NotFound returns a HandlerFunc that replies with a 404 not found

func WrapH

func WrapH(handler http.Handler) HandlerFunc

WrapH wraps a http.Handler to a HandlerFunc

type Middleware added in v1.0.20

type Middleware = HandlerFunc

Middleware defines the signature of the middleware function.

type ResponseWriter added in v1.0.12

type ResponseWriter interface {
	http.ResponseWriter
	http.Hijacker
	http.CloseNotifier
	http.Flusher

	Status() int

	Size() int

	// WriteString writes the string into the response body.
	WriteString(string) (int, error)

	Written() bool
	// contains filtered or unexported methods
}

ResponseWriter ...

type RouterGroup

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

RouterGroup is a group of routes.

func (*RouterGroup) Any added in v1.0.3

func (g *RouterGroup) Any(path string, handler ...HandlerFunc) *RouterGroup

Any defines all request methods (anyMethods)

func (*RouterGroup) Delete

func (g *RouterGroup) Delete(path string, handler ...HandlerFunc) *RouterGroup

Delete defines the method to add DELETE request

func (*RouterGroup) Get

func (g *RouterGroup) Get(path string, handler ...HandlerFunc) *RouterGroup

Get defines the method to add GET request

func (*RouterGroup) Group

func (g *RouterGroup) Group(prefix string) *RouterGroup

Group defines a new router group

func (*RouterGroup) Head

func (g *RouterGroup) Head(path string, handler ...HandlerFunc) *RouterGroup

Head defines the method to add HEAD request

func (*RouterGroup) Options added in v1.0.3

func (g *RouterGroup) Options(path string, handler ...HandlerFunc) *RouterGroup

Options defines the method to add OPTIONS request

func (*RouterGroup) Patch

func (g *RouterGroup) Patch(path string, handler ...HandlerFunc) *RouterGroup

Patch defines the method to add PATCH request

func (*RouterGroup) Post

func (g *RouterGroup) Post(path string, handler ...HandlerFunc) *RouterGroup

Post defines the method to add POST request

func (*RouterGroup) Put

func (g *RouterGroup) Put(path string, handler ...HandlerFunc) *RouterGroup

Put defines the method to add PUT request

func (*RouterGroup) Static

func (g *RouterGroup) Static(relativePath string, root string, options ...StaticOptions)

Static defines the method to serve static files

func (*RouterGroup) StaticFS added in v1.0.15

func (g *RouterGroup) StaticFS(relativePath string, fs http.FileSystem)

StaticFS defines the method to serve static files

func (*RouterGroup) Use

func (g *RouterGroup) Use(middlewares ...HandlerFunc)

Use adds a middleware to the group

func (*RouterGroup) WebSocket added in v1.0.28

func (g *RouterGroup) WebSocket(path string, handler WsHandlerFunc) *RouterGroup

WebSocket defines the method to add websocket route

type Session added in v1.0.14

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

Session is the http session based on cookie.

func (*Session) Del added in v1.0.14

func (s *Session) Del(key string)

Del deletes the value by key.

func (*Session) Get added in v1.0.14

func (s *Session) Get(key string) string

Get gets the value by key.

func (*Session) Set added in v1.0.14

func (s *Session) Set(key string, value string)

Set sets the value by key.

type StaticOptions

type StaticOptions struct {
	Gzip         bool
	Md5          bool
	CacheControl string
	MaxAge       time.Duration
	Index        bool
	Suffix       string
}

StaticOptions is the options for static method

type WebSocketClient added in v1.0.28

type WebSocketClient struct {
	OnConnect       func()
	OnDisconnect    func()
	OnMessage       func(typ int, msg []byte)
	OnTextMessage   func(msg []byte)
	OnBinaryMessage func(msg []byte)
	OnError         func(err error)
	// contains filtered or unexported fields
}

WebSocketClient ...

func (*WebSocketClient) Disconnect added in v1.0.28

func (c *WebSocketClient) Disconnect()

Disconnect ...

func (*WebSocketClient) Write added in v1.0.28

func (c *WebSocketClient) Write(typ int, msg []byte) error

Write ...

func (*WebSocketClient) WriteBinary added in v1.0.28

func (c *WebSocketClient) WriteBinary(msg []byte) error

WriteBinary ...

func (*WebSocketClient) WriteJSON added in v1.0.28

func (c *WebSocketClient) WriteJSON(msg interface{}) error

WriteJSON ...

func (*WebSocketClient) WriteText added in v1.0.28

func (c *WebSocketClient) WriteText(msg string) error

WriteText ...

type WsHandlerFunc added in v1.0.28

type WsHandlerFunc func(ctx *Context, client *WebSocketClient)

WsHandlerFunc defines the websocket handler used by gee

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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