zdpgo_api

package module
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Jul 17, 2022 License: MIT Imports: 47 Imported by: 0

README

zdpgo_api

基于 gin 二次封装的一个后端 api 快速开发框架

项目地址:https://github.com/zhangdapeng520/zdpgo_api

版本历史

  • v1.0.0 2022/02/09
  • v1.0.1 2022/02/11 指定默认模板目录 template 和默认静态文件夹目录 static
  • v1.0.2 2022/02/11 移除本地依赖
  • v1.0.3 2022/02/11 新增日志中间件和 recover 中间件
  • v1.0.4 2022/03/08 优化模板和静态目录
  • v1.0.5 2022/03/08 增加常用的统一返回对象
  • v1.0.6 2022/03/08 将挂载通用路由设置为开关量
  • v1.0.7 2022/03/10 支持配置服务相关参数
  • v1.0.8 2022/03/10 支持 viper 读取和设置配置
  • v1.0.9 2022/03/11 logger 日志支持配置
  • v1.1.0 2022/03/12 修复日志不打印 body
  • v1.1.1 2022/04/08 新增详细日志
  • v1.1.2 2022/04/11 详细日志升级,支持查看的具体 Body 中的 JSON 数据
  • v1.1.3 2022/04/21 文件上传
  • v1.1.4 2022/05/16 新增:Api 核心对象
  • v1.1.5 2022/05/17 优化:日志中间件优化
  • v1.1.6 2022/05/17 新增:添加静态文件服务
  • v1.1.7 2022/05/17 新增:API 分组
  • v1.1.8 2022/06/06 新增:读取 ECC 加密的 JSON 数据
  • v1.1.9 2022/06/11 新增:读取 ECC 加密的文本数据
  • v1.2.0 2022/06/11 新增:读取 AES 加密的数据
  • v1.2.1 2022/06/14 优化:上传文件接口优化
  • v1.2.2 2022/06/15 优化:日志优化
  • v1.2.3 2022/06/20 优化:日志优化
  • v1.2.4 2022/06/27 新增:健康检查和接口限流
  • v1.2.5 2022/06/29 新增:密码组件升级
  • v1.2.6 2022/07/08 升级:升级 password 组件
  • v1.2.7 2022/07/14 优化:移除 log 和 password 组件
  • v1.2.8 2022/07/17 新增:中文校验器
  • v1.2.9 2022/07/17 新增:手机号验证器

使用示例

请查看 examples 目录

Documentation

Index

Constants

View Source
const (
	PlatformGoogleAppEngine = "X-Appengine-Remote-Addr" // Google App Engine
	PlatformCloudflare      = "CF-Connecting-IP"        // Cloudflare's CDN.
)

信任的平台

View Source
const (
	MIMEJSON              = binding.MIMEJSON
	MIMEHTML              = binding.MIMEHTML
	MIMEXML               = binding.MIMEXML
	MIMEXML2              = binding.MIMEXML2
	MIMEPlain             = binding.MIMEPlain
	MIMEPOSTForm          = binding.MIMEPOSTForm
	MIMEMultipartPOSTForm = binding.MIMEMultipartPOSTForm
	MIMEYAML              = binding.MIMEYAML
)

Content-Type MIME 通用数据格式

View Source
const (
	DebugMode   = "debug"   // debug模式
	ReleaseMode = "release" // 发布模式
	TestMode    = "test"    // 测试模式
)
View Source
const AuthUserKey = "user" // AuthUserKey 是基本身份验证中用户凭据的cookie名称。
View Source
const BindKey = "_gin-gonic/api/bindkey"

BindKey indicates a default bind key.

View Source
const BodyBytesKey = "github.com/zhangdapeng520/zdpgo_api"

BodyBytesKey 指示默认的Body字节键。

View Source
const EnvGinMode = "GIN_MODE"

EnvGinMode GIN模式的环境变量名称

View Source
const Version = "v1.2.6"

Version 版本

Variables

View Source
var DefaultErrorWriter io.Writer = os.Stderr

DefaultErrorWriter 默认错误输出流

View Source
var DefaultWriter io.Writer = os.Stdout

DefaultWriter 默认输出流

View Source
var (
	Trans ut.Translator
)

Functions

func CreateDirs added in v1.2.7

func CreateDirs(filePath string) error

CreateDirs 调用os.MkdirAll递归创建文件夹

func CreateTestContext added in v1.2.7

func CreateTestContext(w http.ResponseWriter) (c *Context, r *Engine)

CreateTestContext returns a fresh engine and context for testing purposes

func Dir added in v1.2.7

func Dir(root string, listDirectory bool) http.FileSystem

Dir returns a http.Filesystem that can be used by http.FileServer(). It is used internally in router.Static(). if listDirectory == true, then it works the same as http.Dir() otherwise it returns a filesystem that prevents http.FileServer() to list the directory files.

func DisableBindValidation added in v1.2.7

func DisableBindValidation()

DisableBindValidation 关闭默认的校验器

func EnableJsonDecoderDisallowUnknownFields added in v1.2.7

func EnableJsonDecoderDisallowUnknownFields()

EnableJsonDecoderDisallowUnknownFields 为绑定设置true。使EnableDecoderDisallowUnknowFields在JSON解码器实例上调用DisallowUnknowFields方法。

func EnableJsonDecoderUseNumber added in v1.2.7

func EnableJsonDecoderUseNumber()

EnableJsonDecoderUseNumber 为绑定设置true。允许DecodeRusEnumber在JSON解码器实例上调用UseNumber方法。

func GetMd5 added in v1.2.8

func GetMd5(data string) string

GetMd5 获取数据的MD5值

func HandleValidatorError added in v1.2.8

func HandleValidatorError(c *Context, err error)

HandleValidatorError 处理校验错误

func InitTrans added in v1.2.8

func InitTrans(locale string) (err error)

func InitTransChinese added in v1.2.8

func InitTransChinese() error

func IsDebugging added in v1.2.7

func IsDebugging() bool

IsDebugging 是否为Debug模式

func IsExists added in v1.2.7

func IsExists(path string) bool

IsExists 判断所给路径文件/文件夹是否存在(返回true是存在)

func Mode added in v1.2.7

func Mode() string

Mode 返回当前的gin模式

func RegisterMobileValidator added in v1.2.9

func RegisterMobileValidator()

func SetMode added in v1.2.7

func SetMode(value string)

SetMode 设置gin的模式

func ValidateMobile added in v1.2.9

func ValidateMobile(fl validator.FieldLevel) bool

ValidateMobile 手机号验证器

Types

type Accounts added in v1.2.7

type Accounts map[string]string // Accounts 定义用户名和密码的键值对

type Api added in v1.1.4

type Api struct {
	Config *Config // 配置对象
	App    *Engine // 核心App对象
}

Api API核心对象

func NewApi added in v1.2.7

func NewApi() *Api

New 使用默认配置创建API

func NewWithConfig added in v1.1.4

func NewWithConfig(config *Config) *Api

NewWithConfig 根据配置创建API

func (*Api) AddCorsMiddleware added in v1.1.4

func (a *Api) AddCorsMiddleware()

AddCorsMiddleware 添加跨域中间件

func (*Api) AddHealthCheckRouter added in v1.2.4

func (a *Api) AddHealthCheckRouter()

AddHealthCheckRouter 添加健康检查接口

func (*Api) AddRateLimitMiddleware added in v1.2.4

func (a *Api) AddRateLimitMiddleware()

AddRateLimitMiddleware 添加请求速率中间件

func (*Api) AddStaticFSRouter added in v1.1.6

func (a *Api) AddStaticFSRouter(routerPath string, fsObj fs.FS)

AddStaticFSRouter 添加嵌入式文件系统作为静态目录

func (*Api) AddStaticRouter added in v1.1.6

func (a *Api) AddStaticRouter(routerPath string, dirPath string)

AddStaticRouter 添加静态文件目录

func (*Api) AddUploadRouter added in v1.1.4

func (a *Api) AddUploadRouter(
	routerPath string,
	fileName string,
	saveDir string,
	handleResultList ...func(c *Context, file *multipart.FileHeader, err error))

AddUploadRouter 添加文件上传路由 @param routerPath 路由路径,比如:/upload @param fileName 上传文件的表单名称,比如:file @param saveDir 文件的上传路径,比如:./uploads @param handleResultList 处理结果的方法列表,用户可以自定义文件上传后的返回内容,处理错误信息

func (*Api) Any added in v1.1.7

func (a *Api) Any(method, routerPath string, handleFuncList ...func(ctx *Context))

Any 处理任意方法类型

func (*Api) Delete added in v1.1.7

func (a *Api) Delete(routerPath string, handleFuncList ...func(ctx *Context))

Delete 处理DELETE方法类型

func (*Api) Get added in v1.1.7

func (a *Api) Get(routerPath string, handleFuncList ...func(ctx *Context))

Get 处理GET方法类型

func (*Api) GetBasicAuthGroup added in v1.1.4

func (a *Api) GetBasicAuthGroup(routerPath string, accounts StringMap) (group *ApiGroup)

GetBasicAuthGroup 获取基本权限校验路由组

func (*Api) InitValidator added in v1.1.4

func (a *Api) InitValidator() (err error)

InitValidator 初始化校验器

func (*Api) Patch added in v1.1.7

func (a *Api) Patch(routerPath string, handleFuncList ...func(ctx *Context))

Patch 处理PATCH方法类型

func (*Api) Post added in v1.1.7

func (a *Api) Post(routerPath string, handleFuncList ...func(ctx *Context))

Post 处理POST方法类型

func (*Api) Put added in v1.1.7

func (a *Api) Put(routerPath string, handleFuncList ...func(ctx *Context))

Put 处理PUT方法类型

func (*Api) Run added in v1.1.4

func (a *Api) Run(exitFuncList ...func())

TODO: 自动重启https://www.codeleading.com/article/97834445692/ Run 运行APP

func (*Api) SetApp added in v1.1.4

func (a *Api) SetApp(app *Engine)

SetApp 设置APP

func (*Api) Validate added in v1.1.4

func (a *Api) Validate(data interface{}) (errData map[string]string)

Validate 校验结构体

type ApiGroup added in v1.1.7

type ApiGroup struct {
	RouterGroup
}

ApiGroup API分组

func (*ApiGroup) Any added in v1.1.7

func (g *ApiGroup) Any(method, routerPath string, handleFuncList ...func(ctx *Context))

func (*ApiGroup) Delete added in v1.1.7

func (g *ApiGroup) Delete(routerPath string, handleFuncList ...func(ctx *Context))

Delete 处理DELETE方法类型

func (*ApiGroup) Get added in v1.1.7

func (g *ApiGroup) Get(routerPath string, handleFuncList ...func(ctx *Context))

Get 处理GET方法类型

func (*ApiGroup) Patch added in v1.1.7

func (g *ApiGroup) Patch(routerPath string, handleFuncList ...func(ctx *Context))

Patch 处理PATCH方法类型

func (*ApiGroup) Post added in v1.1.7

func (g *ApiGroup) Post(routerPath string, handleFuncList ...func(ctx *Context))

Post 处理POST方法类型

func (*ApiGroup) Put added in v1.1.7

func (g *ApiGroup) Put(routerPath string, handleFuncList ...func(ctx *Context))

Put 处理PUT方法类型

type Config added in v1.1.4

type Config struct {
	Debug          bool             `yaml:"debug" json:"debug"`
	Host           string           `yaml:"host" json:"host"`                         // 启动地址,默认0.0.0.0
	Port           int              `yaml:"port" json:"port"`                         // 启动端口号,默认3333
	UploadFileSize int64            `yaml:"upload_file_size" json:"upload_file_size"` // 上传文件大小限制(M),默认33
	RateLimit      uint64           `yaml:"rate_limit" json:"rate_limit"`             // 请求速率,默认3333
	Middleware     MiddlewareConfig `yaml:"middleware" json:"middleware"`             // 中间件
	Router         RouterConfig     `yaml:"router" json:"router"`                     // 路由配置
}

type Context added in v1.1.7

type Context struct {
	Request *http.Request
	Writer  ResponseWriter

	Params Params

	// Keys 是每次请求的key/value键值对
	Keys map[string]interface{}

	// Errors 错误消息列表
	Errors errorMsgs

	// Accepted 定义手动接受的内容协商格式列表。
	Accepted []string
	// contains filtered or unexported fields
}

Context 是gin最重要的部分。例如,它允许我们在中间件之间传递变量、管理流、验证请求的JSON和呈现JSON响应。

func (*Context) Abort added in v1.2.7

func (c *Context) Abort()

Abort prevents pending handlers from being called. Note that this will not stop the current handler. Let's say you have an authorization middleware that validates that the current request is authorized. If the authorization fails (ex: the password does not match), call Abort to ensure the remaining handlers for this request are not called.

func (*Context) AbortWithError added in v1.2.7

func (c *Context) AbortWithError(code int, err error) *Error

AbortWithError calls `AbortWithStatus()` and `Error()` internally. This method stops the chain, writes the status code and pushes the specified error to `c.Errors`. See Context.Error() for more details.

func (*Context) AbortWithStatus added in v1.2.7

func (c *Context) AbortWithStatus(code int)

AbortWithStatus calls `Abort()` and writes the headers with the specified status code. For example, a failed attempt to authenticate a request could use: context.AbortWithStatus(401).

func (*Context) AbortWithStatusJSON added in v1.2.7

func (c *Context) AbortWithStatusJSON(code int, jsonObj interface{})

AbortWithStatusJSON calls `Abort()` and then `JSON` internally. This method stops the chain, writes the status code and return a JSON body. It also sets the Content-Type as "application/json".

func (*Context) AsciiJSON added in v1.2.7

func (c *Context) AsciiJSON(code int, obj interface{})

AsciiJSON serializes the given struct as JSON into the response body with unicode to ASCII string. It also sets the Content-Type as "application/json".

func (*Context) Bind added in v1.2.7

func (c *Context) Bind(obj interface{}) error

Bind checks the Content-Type to select a binding engine automatically, Depending the "Content-Type" header different bindings are used:

"application/json" --> JSON binding
"application/xml"  --> XML binding

otherwise --> returns an error. It parses the request's body as JSON if Content-Type == "application/json" using JSON or XML as a JSON input. It decodes the json payload into the struct specified as a pointer. It writes a 400 error and sets Content-Type header "text/plain" in the response if input is not valid.

func (*Context) BindHeader added in v1.2.7

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

BindHeader is a shortcut for c.MustBindWith(obj, binding.Header).

func (*Context) BindJSON added in v1.2.7

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

BindJSON is a shortcut for c.MustBindWith(obj, binding.JSON).

func (*Context) BindQuery added in v1.2.7

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

BindQuery is a shortcut for c.MustBindWith(obj, binding.Query).

func (*Context) BindUri added in v1.2.7

func (c *Context) BindUri(obj interface{}) error

BindUri binds the passed struct pointer using binding.Uri. It will abort the request with HTTP 400 if any error occurs.

func (*Context) BindWith added in v1.2.7

func (c *Context) BindWith(obj interface{}, b binding.Binding) error

BindWith binds the passed struct pointer using the specified binding engine. See the binding package.

func (*Context) BindXML added in v1.2.7

func (c *Context) BindXML(obj interface{}) error

BindXML is a shortcut for c.MustBindWith(obj, binding.BindXML).

func (*Context) ClientIP added in v1.2.7

func (c *Context) ClientIP() string

ClientIP implements one best effort algorithm to return the real client IP. It called c.RemoteIP() under the hood, to check if the remote IP is a trusted proxy or not. If it is it will then try to parse the headers defined in Engine.RemoteIPHeaders (defaulting to [X-Forwarded-For, X-Real-Ip]). If the headers are not syntactically valid OR the remote IP does not correspond to a trusted proxy, the remote IP (coming form Request.RemoteAddr) is returned.

func (*Context) ContentType added in v1.2.7

func (c *Context) ContentType() string

ContentType returns the Content-Type header of the request.

func (*Context) Cookie added in v1.2.7

func (c *Context) Cookie(name string) (string, error)

Cookie returns the named cookie provided in the request or ErrNoCookie if not found. And return the named cookie is unescaped. If multiple cookies match the given name, only one cookie will be returned.

func (*Context) Copy added in v1.2.7

func (c *Context) Copy() *Context

Copy 返回可在请求范围外安全使用的当前上下文的副本。 当必须将上下文传递给goroutine时,必须使用此选项。

func (*Context) Data added in v1.2.7

func (c *Context) Data(code int, contentType string, data []byte)

Data writes some data into the body stream and updates the HTTP code.

func (*Context) DataFromReader added in v1.2.7

func (c *Context) DataFromReader(code int, contentLength int64, contentType string, reader io.Reader, extraHeaders map[string]string)

DataFromReader writes the specified reader into the body stream and updates the HTTP code.

func (*Context) Deadline added in v1.2.7

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

Deadline always returns that there is no deadline (ok==false), maybe you want to use Request.Context().Deadline() instead.

func (*Context) DefaultPostForm added in v1.2.7

func (c *Context) DefaultPostForm(key, defaultValue string) string

DefaultPostForm returns the specified key from a POST urlencoded form or multipart form when it exists, otherwise it returns the specified defaultValue string. See: PostForm() and GetPostForm() for further information.

func (*Context) DefaultQuery added in v1.2.7

func (c *Context) DefaultQuery(key, defaultValue string) string

DefaultQuery returns the keyed url query value if it exists, otherwise it returns the specified defaultValue string. See: Query() and GetQuery() for further information.

GET /?name=Manu&lastname=
c.DefaultQuery("name", "unknown") == "Manu"
c.DefaultQuery("id", "none") == "none"
c.DefaultQuery("lastname", "none") == ""

func (*Context) Done added in v1.2.7

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

Done always returns nil (chan which will wait forever), if you want to abort your work when the connection was closed you should use Request.Context().Done() instead.

func (*Context) Err added in v1.2.7

func (c *Context) Err() error

Err always returns nil, maybe you want to use Request.Context().Err() instead.

func (*Context) Error added in v1.2.7

func (c *Context) Error(err error) *Error

Error attaches an error to the current context. The error is pushed to a list of errors. It's a good idea to call Error for each error that occurred during the resolution of a request. A middleware can be used to collect all the errors and push them to a database together, print a log, or append it in the HTTP response. Error will panic if err is nil.

func (*Context) File added in v1.2.7

func (c *Context) File(filepath string)

File writes the specified file into the body stream in an efficient way.

func (*Context) FileAttachment added in v1.2.7

func (c *Context) FileAttachment(filepath, filename string)

FileAttachment writes the specified file into the body stream in an efficient way On the client side, the file will typically be downloaded with the given filename

func (*Context) FileFromFS added in v1.2.7

func (c *Context) FileFromFS(filepath string, fs http.FileSystem)

FileFromFS writes the specified file from http.FileSystem into the body stream in an efficient way.

func (*Context) FormFile added in v1.2.7

func (c *Context) FormFile(name string) (*multipart.FileHeader, error)

FormFile returns the first file for the provided form key.

func (*Context) FullPath added in v1.2.7

func (c *Context) FullPath() string

FullPath returns a matched route full path. For not found routes returns an empty string.

router.GET("/user/:id", func(c *gin.Context) {
    c.FullPath() == "/user/:id" // true
})

func (*Context) Get added in v1.2.7

func (c *Context) Get(key string) (value interface{}, exists bool)

Get returns the value for the given key, ie: (value, true). If the value does not exists it returns (nil, false)

func (*Context) GetBody added in v1.1.8

func (c *Context) GetBody() ([]byte, error)

GetBody 获取body中的字符串数据

func (*Context) GetBool added in v1.2.7

func (c *Context) GetBool(key string) (b bool)

GetBool returns the value associated with the key as a boolean.

func (*Context) GetDuration added in v1.2.7

func (c *Context) GetDuration(key string) (d time.Duration)

GetDuration returns the value associated with the key as a duration.

func (*Context) GetFloat64 added in v1.2.7

func (c *Context) GetFloat64(key string) (f64 float64)

GetFloat64 returns the value associated with the key as a float64.

func (*Context) GetHeader added in v1.2.7

func (c *Context) GetHeader(key string) string

GetHeader returns value from request headers.

func (*Context) GetInt added in v1.2.7

func (c *Context) GetInt(key string) (i int)

GetInt returns the value associated with the key as an integer.

func (*Context) GetInt64 added in v1.2.7

func (c *Context) GetInt64(key string) (i64 int64)

GetInt64 returns the value associated with the key as an integer.

func (*Context) GetPostForm added in v1.2.7

func (c *Context) GetPostForm(key string) (string, bool)

GetPostForm is like PostForm(key). It returns the specified key from a POST urlencoded form or multipart form when it exists `(value, true)` (even when the value is an empty string), otherwise it returns ("", false). For example, during a PATCH request to update the user's email:

    email=mail@example.com  -->  ("mail@example.com", true) := GetPostForm("email") // set email to "mail@example.com"
	   email=                  -->  ("", true) := GetPostForm("email") // set email to ""
                            -->  ("", false) := GetPostForm("email") // do nothing with email

func (*Context) GetPostFormArray added in v1.2.7

func (c *Context) GetPostFormArray(key string) ([]string, bool)

GetPostFormArray returns a slice of strings for a given form key, plus a boolean value whether at least one value exists for the given key.

func (*Context) GetPostFormMap added in v1.2.7

func (c *Context) GetPostFormMap(key string) (map[string]string, bool)

GetPostFormMap returns a map for a given form key, plus a boolean value whether at least one value exists for the given key.

func (*Context) GetQuery added in v1.2.7

func (c *Context) GetQuery(key string) (string, bool)

GetQuery is like Query(), it returns the keyed url query value if it exists `(value, true)` (even when the value is an empty string), otherwise it returns `("", false)`. It is shortcut for `c.Request.URL.Query().Get(key)`

GET /?name=Manu&lastname=
("Manu", true) == c.GetQuery("name")
("", false) == c.GetQuery("id")
("", true) == c.GetQuery("lastname")

func (*Context) GetQueryArray added in v1.2.7

func (c *Context) GetQueryArray(key string) ([]string, bool)

GetQueryArray returns a slice of strings for a given query key, plus a boolean value whether at least one value exists for the given key.

func (*Context) GetQueryMap added in v1.2.7

func (c *Context) GetQueryMap(key string) (map[string]string, bool)

GetQueryMap returns a map for a given query key, plus a boolean value whether at least one value exists for the given key.

func (*Context) GetRawData added in v1.2.7

func (c *Context) GetRawData() ([]byte, error)

GetRawData return stream data.

func (*Context) GetResponseSuccess added in v1.2.1

func (c *Context) GetResponseSuccess(data interface{}) Response

获取成功的响应

func (*Context) GetString added in v1.2.7

func (c *Context) GetString(key string) (s string)

GetString returns the value associated with the key as a string.

func (*Context) GetStringMap added in v1.2.7

func (c *Context) GetStringMap(key string) (sm map[string]interface{})

GetStringMap returns the value associated with the key as a map of interfaces.

func (*Context) GetStringMapString added in v1.2.7

func (c *Context) GetStringMapString(key string) (sms map[string]string)

GetStringMapString returns the value associated with the key as a map of strings.

func (*Context) GetStringMapStringSlice added in v1.2.7

func (c *Context) GetStringMapStringSlice(key string) (smss map[string][]string)

GetStringMapStringSlice returns the value associated with the key as a map to a slice of strings.

func (*Context) GetStringSlice added in v1.2.7

func (c *Context) GetStringSlice(key string) (ss []string)

GetStringSlice returns the value associated with the key as a slice of strings.

func (*Context) GetTime added in v1.2.7

func (c *Context) GetTime(key string) (t time.Time)

GetTime returns the value associated with the key as time.

func (*Context) GetUint added in v1.2.7

func (c *Context) GetUint(key string) (ui uint)

GetUint returns the value associated with the key as an unsigned integer.

func (*Context) GetUint64 added in v1.2.7

func (c *Context) GetUint64(key string) (ui64 uint64)

GetUint64 returns the value associated with the key as an unsigned integer.

func (*Context) HTML added in v1.2.7

func (c *Context) HTML(code int, name string, obj interface{})

HTML renders the HTTP template specified by its file name. It also updates the HTTP code and sets the Content-Type as "text/html". See http://golang.org/doc/articles/wiki/

func (*Context) Handler added in v1.2.7

func (c *Context) Handler() HandlerFunc

Handler returns the main handler.

func (*Context) HandlerName added in v1.2.7

func (c *Context) HandlerName() string

HandlerName returns the main handler's name. For example if the handler is "handleGetUsers()", this function will return "main.handleGetUsers".

func (*Context) HandlerNames added in v1.2.7

func (c *Context) HandlerNames() []string

HandlerNames returns a list of all registered handlers for this context in descending order, following the semantics of HandlerName()

func (*Context) Header added in v1.2.7

func (c *Context) Header(key, value string)

Header is a intelligent shortcut for c.Writer.Header().Set(key, value). It writes a header in the response. If value == "", this method removes the header `c.Writer.Header().Del(key)`

func (*Context) IndentedJSON added in v1.2.7

func (c *Context) IndentedJSON(code int, obj interface{})

IndentedJSON serializes the given struct as pretty JSON (indented + endlines) into the response body. It also sets the Content-Type as "application/json". WARNING: we recommend to use this only for development purposes since printing pretty JSON is more CPU and bandwidth consuming. Use Context.JSON() instead.

func (*Context) IsAborted added in v1.2.7

func (c *Context) IsAborted() bool

IsAborted returns true if the current context was aborted.

func (*Context) IsWebsocket added in v1.2.7

func (c *Context) IsWebsocket() bool

IsWebsocket returns true if the request headers indicate that a websocket handshake is being initiated by the client.

func (*Context) JSON added in v1.2.7

func (c *Context) JSON(code int, obj interface{})

JSON serializes the given struct as JSON into the response body. It also sets the Content-Type as "application/json".

func (*Context) JSONP added in v1.2.7

func (c *Context) JSONP(code int, obj interface{})

JSONP serializes the given struct as JSON into the response body. It adds padding to response body to request data from a server residing in a different domain than the client. It also sets the Content-Type as "application/javascript".

func (*Context) MultipartForm added in v1.2.7

func (c *Context) MultipartForm() (*multipart.Form, error)

MultipartForm is the parsed multipart form, including file uploads.

func (*Context) MustBindWith added in v1.2.7

func (c *Context) MustBindWith(obj interface{}, b binding.Binding) error

MustBindWith binds the passed struct pointer using the specified binding engine. It will abort the request with HTTP 400 if any error occurs. See the binding package.

func (*Context) MustGet added in v1.2.7

func (c *Context) MustGet(key string) interface{}

MustGet returns the value for the given key if it exists, otherwise it panics.

func (*Context) Negotiate added in v1.2.7

func (c *Context) Negotiate(code int, config Negotiate)

Negotiate calls different Render according acceptable Accept format.

func (*Context) NegotiateFormat added in v1.2.7

func (c *Context) NegotiateFormat(offered ...string) string

NegotiateFormat returns an acceptable Accept format.

func (*Context) Next added in v1.2.7

func (c *Context) Next()

Next should be used only inside middleware. It executes the pending handlers in the chain inside the calling handler. See example in GitHub.

func (*Context) Param added in v1.2.7

func (c *Context) Param(key string) string

Param returns the value of the URL param. It is a shortcut for c.Params.ByName(key)

router.GET("/user/:id", func(c *gin.Context) {
    // a GET request to /user/john
    id := c.Param("id") // id == "john"
})

func (*Context) PostForm added in v1.2.7

func (c *Context) PostForm(key string) string

PostForm returns the specified key from a POST urlencoded form or multipart form when it exists, otherwise it returns an empty string `("")`.

func (*Context) PostFormArray added in v1.2.7

func (c *Context) PostFormArray(key string) []string

PostFormArray returns a slice of strings for a given form key. The length of the slice depends on the number of params with the given key.

func (*Context) PostFormMap added in v1.2.7

func (c *Context) PostFormMap(key string) map[string]string

PostFormMap returns a map for a given form key.

func (*Context) PureJSON added in v1.2.7

func (c *Context) PureJSON(code int, obj interface{})

PureJSON serializes the given struct as JSON into the response body. PureJSON, unlike JSON, does not replace special html characters with their unicode entities.

func (*Context) Query added in v1.2.7

func (c *Context) Query(key string) string

Query returns the keyed url query value if it exists, otherwise it returns an empty string `("")`. It is shortcut for `c.Request.URL.Query().Get(key)`

    GET /path?id=1234&name=Manu&value=
	   c.Query("id") == "1234"
	   c.Query("name") == "Manu"
	   c.Query("value") == ""
	   c.Query("wtf") == ""

func (*Context) QueryArray added in v1.2.7

func (c *Context) QueryArray(key string) []string

QueryArray returns a slice of strings for a given query key. The length of the slice depends on the number of params with the given key.

func (*Context) QueryMap added in v1.2.7

func (c *Context) QueryMap(key string) map[string]string

QueryMap returns a map for a given query key.

func (*Context) Redirect added in v1.2.7

func (c *Context) Redirect(code int, location string)

Redirect returns a HTTP redirect to the specific location.

func (*Context) RemoteIP added in v1.2.7

func (c *Context) RemoteIP() (net.IP, bool)

RemoteIP parses the IP from Request.RemoteAddr, normalizes and returns the IP (without the port). It also checks if the remoteIP is a trusted proxy or not. In order to perform this validation, it will see if the IP is contained within at least one of the CIDR blocks defined by Engine.SetTrustedProxies()

func (*Context) Render added in v1.2.7

func (c *Context) Render(code int, r render.Render)

Render 写入响应头并调用render.Render渲染数据

func (*Context) SSEvent added in v1.2.7

func (c *Context) SSEvent(name string, message interface{})

SSEvent writes a Server-Sent Event into the body stream.

func (*Context) SaveUploadedFile added in v1.2.7

func (c *Context) SaveUploadedFile(file *multipart.FileHeader, dst string) error

SaveUploadedFile uploads the form file to specific dst.

func (*Context) SecureJSON added in v1.2.7

func (c *Context) SecureJSON(code int, obj interface{})

SecureJSON serializes the given struct as Secure JSON into the response body. Default prepends "while(1)," to response body if the given struct is array values. It also sets the Content-Type as "application/json".

func (*Context) Set added in v1.2.7

func (c *Context) Set(key string, value interface{})

Set is used to store a new key/value pair exclusively for this context. It also lazy initializes c.Keys if it was not used previously.

func (*Context) SetAccepted added in v1.2.7

func (c *Context) SetAccepted(formats ...string)

SetAccepted sets Accept header data.

func (*Context) SetCookie added in v1.2.7

func (c *Context) SetCookie(name, value string, maxAge int, path, domain string, secure, httpOnly bool)

SetCookie adds a Set-Cookie header to the ResponseWriter's headers. The provided cookie must have a valid Name. Invalid cookies may be silently dropped.

func (*Context) SetSameSite added in v1.2.7

func (c *Context) SetSameSite(samesite http.SameSite)

SetSameSite with cookie

func (*Context) ShouldBind added in v1.2.7

func (c *Context) ShouldBind(obj interface{}) error

ShouldBind checks the Content-Type to select a binding engine automatically, Depending the "Content-Type" header different bindings are used:

"application/json" --> JSON binding
"application/xml"  --> XML binding

otherwise --> returns an error It parses the request's body as JSON if Content-Type == "application/json" using JSON or XML as a JSON input. It decodes the json payload into the struct specified as a pointer. Like c.Bind() but this method does not set the response status code to 400 and abort if the json is not valid.

func (*Context) ShouldBindBodyWith added in v1.2.7

func (c *Context) ShouldBindBodyWith(obj interface{}, bb binding.BindingBody) (err error)

ShouldBindBodyWith is similar with ShouldBindWith, but it stores the request body into the context, and reuse when it is called again.

NOTE: This method reads the body before binding. So you should use ShouldBindWith for better performance if you need to call only once.

func (*Context) ShouldBindHeader added in v1.2.7

func (c *Context) ShouldBindHeader(obj interface{}) error

ShouldBindHeader is a shortcut for c.ShouldBindWith(obj, binding.Header).

func (*Context) ShouldBindJSON added in v1.2.7

func (c *Context) ShouldBindJSON(obj interface{}) error

ShouldBindJSON is a shortcut for c.ShouldBindWith(obj, binding.JSON).

func (*Context) ShouldBindQuery added in v1.2.7

func (c *Context) ShouldBindQuery(obj interface{}) error

ShouldBindQuery is a shortcut for c.ShouldBindWith(obj, binding.Query).

func (*Context) ShouldBindUri added in v1.2.7

func (c *Context) ShouldBindUri(obj interface{}) error

ShouldBindUri binds the passed struct pointer using the specified binding engine.

func (*Context) ShouldBindWith added in v1.2.7

func (c *Context) ShouldBindWith(obj interface{}, b binding.Binding) error

ShouldBindWith binds the passed struct pointer using the specified binding engine. See the binding package.

func (*Context) ShouldBindXML added in v1.2.7

func (c *Context) ShouldBindXML(obj interface{}) error

ShouldBindXML is a shortcut for c.ShouldBindWith(obj, binding.XML).

func (*Context) Status added in v1.2.7

func (c *Context) Status(code int)

Status sets the HTTP response code.

func (*Context) Stream added in v1.2.7

func (c *Context) Stream(step func(w io.Writer) bool) bool

Stream sends a streaming response and returns a boolean indicates "Is client disconnected in middle of stream"

func (*Context) String added in v1.2.7

func (c *Context) String(code int, format string, values ...interface{})

String writes the given string into the response body.

func (*Context) Value added in v1.2.7

func (c *Context) Value(key interface{}) interface{}

Value returns the value associated with this context for key, or nil if no value is associated with key. Successive calls to Value with the same key returns the same result.

func (*Context) XML added in v1.2.7

func (c *Context) XML(code int, obj interface{})

XML serializes the given struct as XML into the response body. It also sets the Content-Type as "application/xml".

type Engine added in v1.2.7

type Engine struct {
	RouterGroup // 路由组

	// 如果当前路由无法匹配,但存在带有(不带)尾随斜杠的路径的处理程序,则启用自动重定向。
	// 比如请求了 /foo/ 但是只存在 /foo 路由, 会自动重定向到/foo
	RedirectTrailingSlash bool

	// 如果开启,路由会尝试修复当前请求路径。
	RedirectFixedPath bool

	// 如果启用,路由器将检查当前路由是否允许其他方法,以及当前请求是否无法路由。
	// 如果是这种情况,则会使用“不允许使用方法”和HTTP状态代码405来响应请求。
	// 如果不允许使用其他方法,则将请求委托给NotFound处理程序。
	HandleMethodNotAllowed bool

	// 如果启用,客户端IP将从与存储在“(*gin.Engine)的请求头匹配的请求头中解析。RemoteIPHeaders`。
	// 如果没有获取IP,则返回到从“(*gin.Context)获取的IP。要求RemoteAddr`。
	ForwardedByClientIP bool

	// 不推荐:使用'TrustedPlatform'和'api'值。
	// GoogleAppEngine`相反#726#755如果启用,它将信任一些以“X-AppEngine…”开头的标题为了更好地与PaaS集成。
	AppEngine bool

	// 如果启用,则返回url。RawPath将用于查找参数。
	UseRawPath bool

	// 如果为true,则路径值将被取消扫描。
	// 如果UseRawPath为false(默认情况下),则UnescapePathValues为true,如url。将要使用的路径,已经没有了。
	UnescapePathValues bool

	// RemoveExtraSlash 即使使用额外的斜杠,也可以从URL解析参数。
	RemoveExtraSlash bool

	// List of headers used to obtain the client IP when
	// `(*gin.Engine).ForwardedByClientIP` is `true` and
	// `(*gin.Context).Request.RemoteAddr` is matched by at least one of the
	// network origins of list defined by `(*gin.Engine).SetTrustedProxies()`.
	RemoteIPHeaders []string

	// If set to a constant of value api.Platform*, trusts the headers set by
	// that platform, for example to determine the client IP
	TrustedPlatform string

	// Value of 'maxMemory' param that is given to http.Request's ParseMultipartForm
	// method call.
	MaxMultipartMemory int64

	HTMLRender render.HTMLRender
	FuncMap    template.FuncMap
	// contains filtered or unexported fields
}

Engine 是框架的实例,它包含muxer、中间件和配置设置。 使用New()方法和Default()方法可以创建Engine的实例 注意:Engine可以被当成http.Handler使用

func Default added in v1.2.7

func Default() *Engine

Default 返回默认的引擎对象,使用日志中间件和错误捕获中间件

func New added in v1.1.4

func New() *Engine

New 创建一个Engine实例

func (*Engine) Delims added in v1.2.7

func (engine *Engine) Delims(left, right string) *Engine

Delims sets template left and right delims and returns a Engine instance.

func (*Engine) HandleContext added in v1.2.7

func (engine *Engine) HandleContext(c *Context)

HandleContext re-enter a context that has been rewritten. This can be done by setting c.Request.URL.Path to your new target. Disclaimer: You can loop yourself to death with this, use wisely.

func (*Engine) LoadHTMLFiles added in v1.2.7

func (engine *Engine) LoadHTMLFiles(files ...string)

LoadHTMLFiles loads a slice of HTML files and associates the result with HTML renderer.

func (*Engine) LoadHTMLGlob added in v1.2.7

func (engine *Engine) LoadHTMLGlob(pattern string)

LoadHTMLGlob loads HTML files identified by glob pattern and associates the result with HTML renderer.

func (*Engine) NoMethod added in v1.2.7

func (engine *Engine) NoMethod(handlers ...HandlerFunc)

NoMethod sets the handlers called when Engine.HandleMethodNotAllowed = true.

func (*Engine) NoRoute added in v1.2.7

func (engine *Engine) NoRoute(handlers ...HandlerFunc)

NoRoute adds handlers for NoRoute. It return a 404 code by default.

func (*Engine) Routes added in v1.2.7

func (engine *Engine) Routes() (routes RoutesInfo)

Routes returns a slice of registered routes, including some useful information, such as: the http method, path and the handler name.

func (*Engine) Run added in v1.2.7

func (engine *Engine) Run(addr ...string) (err error)

Run attaches the router to a http.Server and starts listening and serving HTTP requests. It is a shortcut for http.ListenAndServe(addr, router) Note: this method will block the calling goroutine indefinitely unless an error happens.

func (*Engine) RunFd added in v1.2.7

func (engine *Engine) RunFd(fd int) (err error)

RunFd attaches the router to a http.Server and starts listening and serving HTTP requests through the specified file descriptor. Note: this method will block the calling goroutine indefinitely unless an error happens.

func (*Engine) RunListener added in v1.2.7

func (engine *Engine) RunListener(listener net.Listener) (err error)

RunListener attaches the router to a http.Server and starts listening and serving HTTP requests through the specified net.Listener

func (*Engine) RunTLS added in v1.2.7

func (engine *Engine) RunTLS(addr, certFile, keyFile string) (err error)

RunTLS attaches the router to a http.Server and starts listening and serving HTTPS (secure) requests. It is a shortcut for http.ListenAndServeTLS(addr, certFile, keyFile, router) Note: this method will block the calling goroutine indefinitely unless an error happens.

func (*Engine) RunUnix added in v1.2.7

func (engine *Engine) RunUnix(file string) (err error)

RunUnix attaches the router to a http.Server and starts listening and serving HTTP requests through the specified unix socket (ie. a file). Note: this method will block the calling goroutine indefinitely unless an error happens.

func (*Engine) SecureJsonPrefix added in v1.2.7

func (engine *Engine) SecureJsonPrefix(prefix string) *Engine

SecureJsonPrefix sets the secureJSONPrefix used in Context.SecureJSON.

func (*Engine) ServeHTTP added in v1.2.7

func (engine *Engine) ServeHTTP(w http.ResponseWriter, req *http.Request)

ServeHTTP conforms to the http.Handler interface.

func (*Engine) SetFuncMap added in v1.2.7

func (engine *Engine) SetFuncMap(funcMap template.FuncMap)

SetFuncMap sets the FuncMap used for template.FuncMap.

func (*Engine) SetHTMLTemplate added in v1.2.7

func (engine *Engine) SetHTMLTemplate(templ *template.Template)

SetHTMLTemplate associate a template with HTML renderer.

func (*Engine) SetTrustedProxies added in v1.2.7

func (engine *Engine) SetTrustedProxies(trustedProxies []string) error

SetTrustedProxies set a list of network origins (IPv4 addresses, IPv4 CIDRs, IPv6 addresses or IPv6 CIDRs) from which to trust request's headers that contain alternative client IP when `(*gin.Engine).ForwardedByClientIP` is `true`. `TrustedProxies` feature is enabled by default, and it also trusts all proxies by default. If you want to disable this feature, use Engine.SetTrustedProxies(nil), then Context.ClientIP() will return the remote address directly.

func (*Engine) Use added in v1.2.7

func (engine *Engine) Use(middleware ...HandlerFunc) IRoutes

Use 添加一个全局的中间件

type Error added in v1.2.7

type Error struct {
	Err  error
	Type ErrorType
	Meta interface{}
}

Error represents a error's specification.

func (Error) Error added in v1.2.7

func (msg Error) Error() string

Error implements the error interface.

func (*Error) IsType added in v1.2.7

func (msg *Error) IsType(flags ErrorType) bool

IsType judges one error.

func (*Error) JSON added in v1.2.7

func (msg *Error) JSON() interface{}

JSON creates a properly formatted JSON

func (*Error) MarshalJSON added in v1.2.7

func (msg *Error) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaller interface.

func (*Error) SetMeta added in v1.2.7

func (msg *Error) SetMeta(data interface{}) *Error

SetMeta sets the error's meta data.

func (*Error) SetType added in v1.2.7

func (msg *Error) SetType(flags ErrorType) *Error

SetType sets the error's type.

func (*Error) Unwrap added in v1.2.7

func (msg *Error) Unwrap() error

Unwrap returns the wrapped error, to allow interoperability with errors.Is(), errors.As() and errors.Unwrap()

type ErrorType added in v1.2.7

type ErrorType uint64

ErrorType is an unsigned 64-bit error code as defined in the api spec.

const (
	// ErrorTypeBind is used when Context.Bind() fails.
	ErrorTypeBind ErrorType = 1 << 63
	// ErrorTypeRender is used when Context.Render() fails.
	ErrorTypeRender ErrorType = 1 << 62
	// ErrorTypePrivate indicates a private error.
	ErrorTypePrivate ErrorType = 1 << 0
	// ErrorTypePublic indicates a public error.
	ErrorTypePublic ErrorType = 1 << 1
	// ErrorTypeAny indicates any other error.
	ErrorTypeAny ErrorType = 1<<64 - 1
	// ErrorTypeNu indicates any other error.
	ErrorTypeNu = 2
)

type H added in v1.2.7

type H map[string]interface{}

H 是json的map对象的简写

func (H) MarshalXML added in v1.2.7

func (h H) MarshalXML(e *xml.Encoder, start xml.StartElement) error

MarshalXML allows type H to be used with xml.Marshal.

type HandlerFunc added in v1.2.7

type HandlerFunc func(*Context)

HandlerFunc API处理方法类型

func BasicAuth added in v1.2.7

func BasicAuth(accounts Accounts) HandlerFunc

BasicAuth 返回HTTP权限校验中间件,只允许给定的账户列表通过请求

func BasicAuthForRealm added in v1.2.7

func BasicAuthForRealm(accounts Accounts, realm string) HandlerFunc

BasicAuthForRealm 返回HTTP Basic校验中间件。 它将map[string]字符串作为参数,其中键是用户名,值是密码,以及域的名称。 如果域为空,默认情况下将使用“需要授权”。

func Bind added in v1.2.7

func Bind(val interface{}) HandlerFunc

Bind is a helper function for given interface object and returns a Gin middleware.

func CustomRecovery added in v1.2.7

func CustomRecovery(handle RecoveryFunc) HandlerFunc

CustomRecovery returns a middleware that recovers from any panics and calls the provided handle func to handle it.

func CustomRecoveryWithWriter added in v1.2.7

func CustomRecoveryWithWriter(out io.Writer, handle RecoveryFunc) HandlerFunc

CustomRecoveryWithWriter 自定义错误捕获输出中间件

func MiddlewareCors added in v1.3.0

func MiddlewareCors() HandlerFunc

MiddlewareCors 跨域中间件

func Recovery added in v1.2.7

func Recovery() HandlerFunc

Recovery returns a middleware that recovers from any panics and writes a 500 if there was one.

func RecoveryWithWriter added in v1.2.7

func RecoveryWithWriter(out io.Writer, recovery ...RecoveryFunc) HandlerFunc

RecoveryWithWriter returns a middleware for a given writer that recovers from any panics and writes a 500 if there was one.

func WrapF added in v1.2.7

func WrapF(f http.HandlerFunc) HandlerFunc

WrapF is a helper function for wrapping http.HandlerFunc and returns a Gin middleware.

func WrapH added in v1.2.7

func WrapH(h http.Handler) HandlerFunc

WrapH is a helper function for wrapping http.Handler and returns a Gin middleware.

type HandlersChain added in v1.2.7

type HandlersChain []HandlerFunc

HandlersChain API处理方法类型数组

func (HandlersChain) Last added in v1.2.7

func (c HandlersChain) Last() HandlerFunc

Last 返回API处理方法类型的最后一个方法

type IRouter added in v1.2.7

type IRouter interface {
	IRoutes
	Group(string, ...HandlerFunc) *RouterGroup
}

IRouter defines all router handle interface includes single and group router.

type IRoutes added in v1.2.7

type IRoutes interface {
	Use(...HandlerFunc) IRoutes

	Handle(string, string, ...HandlerFunc) IRoutes
	Any(string, ...HandlerFunc) IRoutes
	GET(string, ...HandlerFunc) IRoutes
	POST(string, ...HandlerFunc) IRoutes
	DELETE(string, ...HandlerFunc) IRoutes
	PATCH(string, ...HandlerFunc) IRoutes
	PUT(string, ...HandlerFunc) IRoutes
	OPTIONS(string, ...HandlerFunc) IRoutes
	HEAD(string, ...HandlerFunc) IRoutes

	StaticFile(string, string) IRoutes
	Static(string, string) IRoutes
	StaticFS(string, http.FileSystem) IRoutes
}

IRoutes defines all router handle interface.

type JsonMap added in v1.1.7

type JsonMap map[string]interface{}

JsonMap json字典类型

type MiddlewareConfig added in v1.2.4

type MiddlewareConfig struct {
	Cors      bool `yaml:"cors" json:"cors"`
	RateLimit bool `yaml:"rateLimit" json:"rateLimit"`
}

type Negotiate added in v1.2.7

type Negotiate struct {
	Offered  []string
	HTMLName string
	HTMLData interface{}
	JSONData interface{}
	XMLData  interface{}
	YAMLData interface{}
	Data     interface{}
}

Negotiate contains all negotiations data.

type Param added in v1.2.7

type Param struct {
	Key   string
	Value string
}

Param is a single URL parameter, consisting of a key and a value.

type Params added in v1.2.7

type Params []Param

Params is a Param-slice, as returned by the router. The slice is ordered, the first URL parameter is also the first slice value. It is therefore safe to read values by the index.

func (Params) ByName added in v1.2.7

func (ps Params) ByName(name string) (va string)

ByName returns the value of the first Param which key matches the given name. If no matching Param is found, an empty string is returned.

func (Params) Get added in v1.2.7

func (ps Params) Get(name string) (string, bool)

Get returns the value of the first Param which key matches the given name. If no matching Param is found, an empty string is returned.

type RecoveryFunc added in v1.2.7

type RecoveryFunc func(c *Context, err interface{})

RecoveryFunc defines the function passable to CustomRecovery.

type Response added in v1.1.8

type Response struct {
	Code   int         `json:"code"`
	Msg    string      `json:"msg"`
	Status bool        `json:"status"`
	Data   interface{} `json:"data"`
}

type ResponseWriter added in v1.2.7

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

	// Returns the HTTP response status code of the current request.
	Status() int

	// Returns the number of bytes already written into the response http body.
	// See Written()
	Size() int

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

	// Returns true if the response body was already written.
	Written() bool

	// Forces to write the http header (status code + headers).
	WriteHeaderNow()

	// get the http.Pusher for server push
	Pusher() http.Pusher
}

ResponseWriter ...

type RouteInfo added in v1.2.7

type RouteInfo struct {
	Method      string      // 方法名
	Path        string      // 路径
	Handler     string      // 处理器
	HandlerFunc HandlerFunc // 处理方法
}

RouteInfo 路由信息

type RouterConfig added in v1.2.4

type RouterConfig struct {
	HealthCheck bool `yaml:"health_check" json:"health_check"` // 健康检查路由
	Static      bool `yaml:"static" json:"static"`             // 静态文件路由
	Upload      bool `yaml:"upload" json:"upload"`             // 文件上传路由
}

type RouterGroup added in v1.2.7

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

RouterGroup 用于配置路由,路由组下的路径具备相同的前缀

func (*RouterGroup) Any added in v1.2.7

func (group *RouterGroup) Any(relativePath string, handlers ...HandlerFunc) IRoutes

Any registers a route that matches all the HTTP methods. GET, POST, PUT, PATCH, HEAD, OPTIONS, DELETE, CONNECT, TRACE.

func (*RouterGroup) BasePath added in v1.2.7

func (group *RouterGroup) BasePath() string

BasePath returns the base path of router group. For example, if v := router.Group("/rest/n/v1/api"), v.BasePath() is "/rest/n/v1/api".

func (*RouterGroup) DELETE added in v1.2.7

func (group *RouterGroup) DELETE(relativePath string, handlers ...HandlerFunc) IRoutes

DELETE is a shortcut for router.Handle("DELETE", path, handle).

func (*RouterGroup) GET added in v1.2.7

func (group *RouterGroup) GET(relativePath string, handlers ...HandlerFunc) IRoutes

GET is a shortcut for router.Handle("GET", path, handle).

func (*RouterGroup) Group added in v1.2.7

func (group *RouterGroup) Group(relativePath string, handlers ...HandlerFunc) *RouterGroup

Group creates a new router group. You should add all the routes that have common middleware or the same path prefix. For example, all the routes that use a common middleware for authorization could be grouped.

func (*RouterGroup) HEAD added in v1.2.7

func (group *RouterGroup) HEAD(relativePath string, handlers ...HandlerFunc) IRoutes

HEAD is a shortcut for router.Handle("HEAD", path, handle).

func (*RouterGroup) Handle added in v1.2.7

func (group *RouterGroup) Handle(httpMethod, relativePath string, handlers ...HandlerFunc) IRoutes

Handle registers a new request handle and middleware with the given path and method. The last handler should be the real handler, the other ones should be middleware that can and should be shared among different routes. See the example code in GitHub.

For GET, POST, PUT, PATCH and DELETE requests the respective shortcut functions can be used.

This function is intended for bulk loading and to allow the usage of less frequently used, non-standardized or custom methods (e.g. for internal communication with a proxy).

func (*RouterGroup) OPTIONS added in v1.2.7

func (group *RouterGroup) OPTIONS(relativePath string, handlers ...HandlerFunc) IRoutes

OPTIONS is a shortcut for router.Handle("OPTIONS", path, handle).

func (*RouterGroup) PATCH added in v1.2.7

func (group *RouterGroup) PATCH(relativePath string, handlers ...HandlerFunc) IRoutes

PATCH is a shortcut for router.Handle("PATCH", path, handle).

func (*RouterGroup) POST added in v1.2.7

func (group *RouterGroup) POST(relativePath string, handlers ...HandlerFunc) IRoutes

POST is a shortcut for router.Handle("POST", path, handle).

func (*RouterGroup) PUT added in v1.2.7

func (group *RouterGroup) PUT(relativePath string, handlers ...HandlerFunc) IRoutes

PUT is a shortcut for router.Handle("PUT", path, handle).

func (*RouterGroup) Static added in v1.2.7

func (group *RouterGroup) Static(relativePath, root string) IRoutes

Static serves files from the given file system root. Internally a http.FileServer is used, therefore http.NotFound is used instead of the Router's NotFound handler. To use the operating system's file system implementation, use :

router.Static("/static", "/var/www")

func (*RouterGroup) StaticFS added in v1.2.7

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

StaticFS works just like `Static()` but a custom `http.FileSystem` can be used instead. Gin by default user: gin.Dir()

func (*RouterGroup) StaticFile added in v1.2.7

func (group *RouterGroup) StaticFile(relativePath, filepath string) IRoutes

StaticFile registers a single route in order to serve a single file of the local filesystem. router.StaticFile("favicon.ico", "./resources/favicon.ico")

func (*RouterGroup) Use added in v1.2.7

func (group *RouterGroup) Use(middleware ...HandlerFunc) IRoutes

Use 为路由分组添加中间件

type RoutesInfo added in v1.2.7

type RoutesInfo []RouteInfo

RoutesInfo 路由信息数组

type StringMap added in v1.1.7

type StringMap map[string]string

StringMap 字符串类型的字典

Directories

Path Synopsis
examples
basic command
rate_limit command
validator command
internal
af
agq
ak
am
ar
as
asa
ast
az
bas
be
bem
bez
bg
bm
bn
bo
br
brx
bs
ca
ccp
ce
ceb
cgg
chr
ckb
cmd command
cs
cu
cy
da
dav
de
dje
dsb
dua
dyo
dz
ebu
ee
el
en
eo
es
et
eu
ewo
fa
ff
fi
fil
fo
fr
fur
fy
ga
gd
gl
gsw
gu
guz
gv
ha
haw
he
hi
hr
hsb
hu
hy
ia
id
ig
ii
is
it
ja
jgo
jmc
jv
ka
kab
kam
kde
kea
khq
ki
kk
kkj
kl
kln
km
kn
ko
kok
ks
ksb
ksf
ksh
ku
kw
ky
lag
lb
lg
lkt
ln
lo
lrc
lt
lu
luo
luy
lv
mas
mer
mfe
mg
mgh
mgo
mi
mk
ml
mn
mr
ms
mt
mua
my
mzn
naq
nb
nd
nds
ne
nl
nmg
nn
nnh
nus
nyn
om
or
os
pa
pl
prg
ps
pt
qu
rm
rn
ro
rof
ru
rw
rwk
sah
saq
sbp
sd
se
seh
ses
sg
shi
si
sk
sl
smn
sn
so
sq
sr
sv
sw
ta
te
teo
tg
th
ti
tk
to
tr
tt
twq
tzm
ug
uk
ur
uz
vai
vi
vo
vun
wae
wo
xh
xog
yav
yi
yo
yue
zgh
zh
zu
Package ratelimit provides an efficient token bucket implementation that can be used to limit the rate of arbitrary things.
Package ratelimit provides an efficient token bucket implementation that can be used to limit the rate of arbitrary things.
Package validator implements value validations for structs and individual fields based on tags.
Package validator implements value validations for structs and individual fields based on tags.

Jump to

Keyboard shortcuts

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