Documentation
¶
Index ¶
- Constants
- Variables
- func CreateDirs(filePath string) error
- func CreateTestContext(w http.ResponseWriter) (c *Context, r *Engine)
- func Dir(root string, listDirectory bool) http.FileSystem
- func DisableBindValidation()
- func EnableJsonDecoderDisallowUnknownFields()
- func EnableJsonDecoderUseNumber()
- func GetMd5(data string) string
- func HandleValidatorError(c *Context, err error)
- func InitTrans(locale string) (err error)
- func InitTransChinese() error
- func IsDebugging() bool
- func IsExists(path string) bool
- func Mode() string
- func RegisterMobileValidator()
- func SetMode(value string)
- func ValidateMobile(fl validator.FieldLevel) bool
- type Accounts
- type Api
- func (a *Api) AddCorsMiddleware()
- func (a *Api) AddHealthCheckRouter()
- func (a *Api) AddRateLimitMiddleware()
- func (a *Api) AddStaticFSRouter(routerPath string, fsObj fs.FS)
- func (a *Api) AddStaticRouter(routerPath string, dirPath string)
- func (a *Api) AddUploadRouter(routerPath string, fileName string, saveDir string, ...)
- func (a *Api) Any(method, routerPath string, handleFuncList ...func(ctx *Context))
- func (a *Api) Delete(routerPath string, handleFuncList ...func(ctx *Context))
- func (a *Api) Get(routerPath string, handleFuncList ...func(ctx *Context))
- func (a *Api) GetBasicAuthGroup(routerPath string, accounts StringMap) (group *ApiGroup)
- func (a *Api) InitValidator() (err error)
- func (a *Api) Patch(routerPath string, handleFuncList ...func(ctx *Context))
- func (a *Api) Post(routerPath string, handleFuncList ...func(ctx *Context))
- func (a *Api) Put(routerPath string, handleFuncList ...func(ctx *Context))
- func (a *Api) Run(exitFuncList ...func())
- func (a *Api) SetApp(app *Engine)
- func (a *Api) Validate(data interface{}) (errData map[string]string)
- type ApiGroup
- func (g *ApiGroup) Any(method, routerPath string, handleFuncList ...func(ctx *Context))
- func (g *ApiGroup) Delete(routerPath string, handleFuncList ...func(ctx *Context))
- func (g *ApiGroup) Get(routerPath string, handleFuncList ...func(ctx *Context))
- func (g *ApiGroup) Patch(routerPath string, handleFuncList ...func(ctx *Context))
- func (g *ApiGroup) Post(routerPath string, handleFuncList ...func(ctx *Context))
- func (g *ApiGroup) Put(routerPath string, handleFuncList ...func(ctx *Context))
- type Config
- type Context
- func (c *Context) Abort()
- func (c *Context) AbortWithError(code int, err error) *Error
- func (c *Context) AbortWithStatus(code int)
- func (c *Context) AbortWithStatusJSON(code int, jsonObj interface{})
- func (c *Context) AsciiJSON(code int, obj interface{})
- func (c *Context) Bind(obj interface{}) error
- func (c *Context) BindHeader(obj interface{}) error
- func (c *Context) BindJSON(obj interface{}) error
- func (c *Context) BindQuery(obj interface{}) error
- func (c *Context) BindUri(obj interface{}) error
- func (c *Context) BindWith(obj interface{}, b binding.Binding) error
- func (c *Context) BindXML(obj interface{}) error
- func (c *Context) ClientIP() string
- func (c *Context) ContentType() string
- func (c *Context) Cookie(name string) (string, error)
- func (c *Context) Copy() *Context
- func (c *Context) Data(code int, contentType string, data []byte)
- func (c *Context) DataFromReader(code int, contentLength int64, contentType string, reader io.Reader, ...)
- func (c *Context) Deadline() (deadline time.Time, ok bool)
- func (c *Context) DefaultPostForm(key, defaultValue string) string
- func (c *Context) DefaultQuery(key, defaultValue string) string
- func (c *Context) Done() <-chan struct{}
- func (c *Context) Err() error
- func (c *Context) Error(err error) *Error
- func (c *Context) File(filepath string)
- func (c *Context) FileAttachment(filepath, filename string)
- func (c *Context) FileFromFS(filepath string, fs http.FileSystem)
- func (c *Context) FormFile(name string) (*multipart.FileHeader, error)
- func (c *Context) FullPath() string
- func (c *Context) Get(key string) (value interface{}, exists bool)
- func (c *Context) GetBody() ([]byte, error)
- func (c *Context) GetBool(key string) (b bool)
- func (c *Context) GetDuration(key string) (d time.Duration)
- func (c *Context) GetFloat64(key string) (f64 float64)
- func (c *Context) GetHeader(key string) string
- func (c *Context) GetInt(key string) (i int)
- func (c *Context) GetInt64(key string) (i64 int64)
- func (c *Context) GetPostForm(key string) (string, bool)
- func (c *Context) GetPostFormArray(key string) ([]string, bool)
- func (c *Context) GetPostFormMap(key string) (map[string]string, bool)
- func (c *Context) GetQuery(key string) (string, bool)
- func (c *Context) GetQueryArray(key string) ([]string, bool)
- func (c *Context) GetQueryMap(key string) (map[string]string, bool)
- func (c *Context) GetRawData() ([]byte, error)
- func (c *Context) GetResponseSuccess(data interface{}) Response
- func (c *Context) GetString(key string) (s string)
- func (c *Context) GetStringMap(key string) (sm map[string]interface{})
- func (c *Context) GetStringMapString(key string) (sms map[string]string)
- func (c *Context) GetStringMapStringSlice(key string) (smss map[string][]string)
- func (c *Context) GetStringSlice(key string) (ss []string)
- func (c *Context) GetTime(key string) (t time.Time)
- func (c *Context) GetUint(key string) (ui uint)
- func (c *Context) GetUint64(key string) (ui64 uint64)
- func (c *Context) HTML(code int, name string, obj interface{})
- func (c *Context) Handler() HandlerFunc
- func (c *Context) HandlerName() string
- func (c *Context) HandlerNames() []string
- func (c *Context) Header(key, value string)
- func (c *Context) IndentedJSON(code int, obj interface{})
- func (c *Context) IsAborted() bool
- func (c *Context) IsWebsocket() bool
- func (c *Context) JSON(code int, obj interface{})
- func (c *Context) JSONP(code int, obj interface{})
- func (c *Context) MultipartForm() (*multipart.Form, error)
- func (c *Context) MustBindWith(obj interface{}, b binding.Binding) error
- func (c *Context) MustGet(key string) interface{}
- func (c *Context) Negotiate(code int, config Negotiate)
- func (c *Context) NegotiateFormat(offered ...string) string
- func (c *Context) Next()
- func (c *Context) Param(key string) string
- func (c *Context) PostForm(key string) string
- func (c *Context) PostFormArray(key string) []string
- func (c *Context) PostFormMap(key string) map[string]string
- func (c *Context) PureJSON(code int, obj interface{})
- func (c *Context) Query(key string) string
- func (c *Context) QueryArray(key string) []string
- func (c *Context) QueryMap(key string) map[string]string
- func (c *Context) Redirect(code int, location string)
- func (c *Context) RemoteIP() (net.IP, bool)
- func (c *Context) Render(code int, r render.Render)
- func (c *Context) SSEvent(name string, message interface{})
- func (c *Context) SaveUploadedFile(file *multipart.FileHeader, dst string) error
- func (c *Context) SecureJSON(code int, obj interface{})
- func (c *Context) Set(key string, value interface{})
- func (c *Context) SetAccepted(formats ...string)
- func (c *Context) SetCookie(name, value string, maxAge int, path, domain string, secure, httpOnly bool)
- func (c *Context) SetSameSite(samesite http.SameSite)
- func (c *Context) ShouldBind(obj interface{}) error
- func (c *Context) ShouldBindBodyWith(obj interface{}, bb binding.BindingBody) (err error)
- func (c *Context) ShouldBindHeader(obj interface{}) error
- func (c *Context) ShouldBindJSON(obj interface{}) error
- func (c *Context) ShouldBindQuery(obj interface{}) error
- func (c *Context) ShouldBindUri(obj interface{}) error
- func (c *Context) ShouldBindWith(obj interface{}, b binding.Binding) error
- func (c *Context) ShouldBindXML(obj interface{}) error
- func (c *Context) Status(code int)
- func (c *Context) Stream(step func(w io.Writer) bool) bool
- func (c *Context) String(code int, format string, values ...interface{})
- func (c *Context) Value(key interface{}) interface{}
- func (c *Context) XML(code int, obj interface{})
- type Engine
- func (engine *Engine) Delims(left, right string) *Engine
- func (engine *Engine) HandleContext(c *Context)
- func (engine *Engine) LoadHTMLFiles(files ...string)
- func (engine *Engine) LoadHTMLGlob(pattern string)
- func (engine *Engine) NoMethod(handlers ...HandlerFunc)
- func (engine *Engine) NoRoute(handlers ...HandlerFunc)
- func (engine *Engine) Routes() (routes RoutesInfo)
- func (engine *Engine) Run(addr ...string) (err error)
- func (engine *Engine) RunFd(fd int) (err error)
- func (engine *Engine) RunListener(listener net.Listener) (err error)
- func (engine *Engine) RunTLS(addr, certFile, keyFile string) (err error)
- func (engine *Engine) RunUnix(file string) (err error)
- func (engine *Engine) SecureJsonPrefix(prefix string) *Engine
- func (engine *Engine) ServeHTTP(w http.ResponseWriter, req *http.Request)
- func (engine *Engine) SetFuncMap(funcMap template.FuncMap)
- func (engine *Engine) SetHTMLTemplate(templ *template.Template)
- func (engine *Engine) SetTrustedProxies(trustedProxies []string) error
- func (engine *Engine) Use(middleware ...HandlerFunc) IRoutes
- type Error
- type ErrorType
- type H
- type HandlerFunc
- func BasicAuth(accounts Accounts) HandlerFunc
- func BasicAuthForRealm(accounts Accounts, realm string) HandlerFunc
- func Bind(val interface{}) HandlerFunc
- func CustomRecovery(handle RecoveryFunc) HandlerFunc
- func CustomRecoveryWithWriter(out io.Writer, handle RecoveryFunc) HandlerFunc
- func Recovery() HandlerFunc
- func RecoveryWithWriter(out io.Writer, recovery ...RecoveryFunc) HandlerFunc
- func WrapF(f http.HandlerFunc) HandlerFunc
- func WrapH(h http.Handler) HandlerFunc
- type HandlersChain
- type IRouter
- type IRoutes
- type JsonMap
- type MiddlewareConfig
- type Negotiate
- type Param
- type Params
- type RecoveryFunc
- type Response
- type ResponseWriter
- type RouteInfo
- type RouterConfig
- type RouterGroup
- func (group *RouterGroup) Any(relativePath string, handlers ...HandlerFunc) IRoutes
- func (group *RouterGroup) BasePath() string
- func (group *RouterGroup) DELETE(relativePath string, handlers ...HandlerFunc) IRoutes
- func (group *RouterGroup) GET(relativePath string, handlers ...HandlerFunc) IRoutes
- func (group *RouterGroup) Group(relativePath string, handlers ...HandlerFunc) *RouterGroup
- func (group *RouterGroup) HEAD(relativePath string, handlers ...HandlerFunc) IRoutes
- func (group *RouterGroup) Handle(httpMethod, relativePath string, handlers ...HandlerFunc) IRoutes
- func (group *RouterGroup) OPTIONS(relativePath string, handlers ...HandlerFunc) IRoutes
- func (group *RouterGroup) PATCH(relativePath string, handlers ...HandlerFunc) IRoutes
- func (group *RouterGroup) POST(relativePath string, handlers ...HandlerFunc) IRoutes
- func (group *RouterGroup) PUT(relativePath string, handlers ...HandlerFunc) IRoutes
- func (group *RouterGroup) Static(relativePath, root string) IRoutes
- func (group *RouterGroup) StaticFS(relativePath string, fs http.FileSystem) IRoutes
- func (group *RouterGroup) StaticFile(relativePath, filepath string) IRoutes
- func (group *RouterGroup) Use(middleware ...HandlerFunc) IRoutes
- type RoutesInfo
- type StringMap
Constants ¶
const ( PlatformGoogleAppEngine = "X-Appengine-Remote-Addr" // Google App Engine PlatformCloudflare = "CF-Connecting-IP" // Cloudflare's CDN. )
信任的平台
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 通用数据格式
const ( DebugMode = "debug" // debug模式 ReleaseMode = "release" // 发布模式 TestMode = "test" // 测试模式 )
const AuthUserKey = "user" // AuthUserKey 是基本身份验证中用户凭据的cookie名称。
const BindKey = "_gin-gonic/api/bindkey"
BindKey indicates a default bind key.
const BodyBytesKey = "github.com/zhangdapeng520/zdpgo_api"
BodyBytesKey 指示默认的Body字节键。
const EnvGinMode = "GIN_MODE"
EnvGinMode GIN模式的环境变量名称
const Version = "v1.2.6"
Version 版本
Variables ¶
var DefaultErrorWriter io.Writer = os.Stderr
DefaultErrorWriter 默认错误输出流
var DefaultWriter io.Writer = os.Stdout
DefaultWriter 默认输出流
var (
Trans ut.Translator
)
Functions ¶
func CreateDirs ¶ added in v1.2.7
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 HandleValidatorError ¶ added in v1.2.8
HandleValidatorError 处理校验错误
func InitTransChinese ¶ added in v1.2.8
func InitTransChinese() error
func RegisterMobileValidator ¶ added in v1.2.9
func RegisterMobileValidator()
func ValidateMobile ¶ added in v1.2.9
func ValidateMobile(fl validator.FieldLevel) bool
ValidateMobile 手机号验证器
Types ¶
type Api ¶ added in v1.1.4
Api API核心对象
func NewWithConfig ¶ added in v1.1.4
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
AddStaticFSRouter 添加嵌入式文件系统作为静态目录
func (*Api) AddStaticRouter ¶ added in v1.1.6
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) GetBasicAuthGroup ¶ added in v1.1.4
GetBasicAuthGroup 获取基本权限校验路由组
func (*Api) InitValidator ¶ added in v1.1.4
InitValidator 初始化校验器
type ApiGroup ¶ added in v1.1.7
type ApiGroup struct {
RouterGroup
}
ApiGroup API分组
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
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
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
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
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
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
BindHeader is a shortcut for c.MustBindWith(obj, binding.Header).
func (*Context) BindJSON ¶ added in v1.2.7
BindJSON is a shortcut for c.MustBindWith(obj, binding.JSON).
func (*Context) BindQuery ¶ added in v1.2.7
BindQuery is a shortcut for c.MustBindWith(obj, binding.Query).
func (*Context) BindUri ¶ added in v1.2.7
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
BindWith binds the passed struct pointer using the specified binding engine. See the binding package.
func (*Context) BindXML ¶ added in v1.2.7
BindXML is a shortcut for c.MustBindWith(obj, binding.BindXML).
func (*Context) ClientIP ¶ added in v1.2.7
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
ContentType returns the Content-Type header of the request.
func (*Context) Cookie ¶ added in v1.2.7
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) Data ¶ added in v1.2.7
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
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
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
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
Err always returns nil, maybe you want to use Request.Context().Err() instead.
func (*Context) Error ¶ added in v1.2.7
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
File writes the specified file into the body stream in an efficient way.
func (*Context) FileAttachment ¶ added in v1.2.7
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
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
Get returns the value for the given key, ie: (value, true). If the value does not exists it returns (nil, false)
func (*Context) GetBool ¶ added in v1.2.7
GetBool returns the value associated with the key as a boolean.
func (*Context) GetDuration ¶ added in v1.2.7
GetDuration returns the value associated with the key as a duration.
func (*Context) GetFloat64 ¶ added in v1.2.7
GetFloat64 returns the value associated with the key as a float64.
func (*Context) GetInt ¶ added in v1.2.7
GetInt returns the value associated with the key as an integer.
func (*Context) GetInt64 ¶ added in v1.2.7
GetInt64 returns the value associated with the key as an integer.
func (*Context) GetPostForm ¶ added in v1.2.7
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
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
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
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
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
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
GetRawData return stream data.
func (*Context) GetResponseSuccess ¶ added in v1.2.1
获取成功的响应
func (*Context) GetString ¶ added in v1.2.7
GetString returns the value associated with the key as a string.
func (*Context) GetStringMap ¶ added in v1.2.7
GetStringMap returns the value associated with the key as a map of interfaces.
func (*Context) GetStringMapString ¶ added in v1.2.7
GetStringMapString returns the value associated with the key as a map of strings.
func (*Context) GetStringMapStringSlice ¶ added in v1.2.7
GetStringMapStringSlice returns the value associated with the key as a map to a slice of strings.
func (*Context) GetStringSlice ¶ added in v1.2.7
GetStringSlice returns the value associated with the key as a slice of strings.
func (*Context) GetTime ¶ added in v1.2.7
GetTime returns the value associated with the key as time.
func (*Context) GetUint ¶ added in v1.2.7
GetUint returns the value associated with the key as an unsigned integer.
func (*Context) GetUint64 ¶ added in v1.2.7
GetUint64 returns the value associated with the key as an unsigned integer.
func (*Context) HTML ¶ added in v1.2.7
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
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
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
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
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
IsAborted returns true if the current context was aborted.
func (*Context) IsWebsocket ¶ added in v1.2.7
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
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
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
MultipartForm is the parsed multipart form, including file uploads.
func (*Context) MustBindWith ¶ added in v1.2.7
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
MustGet returns the value for the given key if it exists, otherwise it panics.
func (*Context) Negotiate ¶ added in v1.2.7
Negotiate calls different Render according acceptable Accept format.
func (*Context) NegotiateFormat ¶ added in v1.2.7
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
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
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
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
PostFormMap returns a map for a given form key.
func (*Context) PureJSON ¶ added in v1.2.7
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
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
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) Redirect ¶ added in v1.2.7
Redirect returns a HTTP redirect to the specific location.
func (*Context) RemoteIP ¶ added in v1.2.7
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) 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
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
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
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
SetSameSite with cookie
func (*Context) ShouldBind ¶ added in v1.2.7
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
ShouldBindHeader is a shortcut for c.ShouldBindWith(obj, binding.Header).
func (*Context) ShouldBindJSON ¶ added in v1.2.7
ShouldBindJSON is a shortcut for c.ShouldBindWith(obj, binding.JSON).
func (*Context) ShouldBindQuery ¶ added in v1.2.7
ShouldBindQuery is a shortcut for c.ShouldBindWith(obj, binding.Query).
func (*Context) ShouldBindUri ¶ added in v1.2.7
ShouldBindUri binds the passed struct pointer using the specified binding engine.
func (*Context) ShouldBindWith ¶ added in v1.2.7
ShouldBindWith binds the passed struct pointer using the specified binding engine. See the binding package.
func (*Context) ShouldBindXML ¶ added in v1.2.7
ShouldBindXML is a shortcut for c.ShouldBindWith(obj, binding.XML).
func (*Context) Stream ¶ added in v1.2.7
Stream sends a streaming response and returns a boolean indicates "Is client disconnected in middle of stream"
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 (*Engine) Delims ¶ added in v1.2.7
Delims sets template left and right delims and returns a Engine instance.
func (*Engine) HandleContext ¶ added in v1.2.7
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
LoadHTMLFiles loads a slice of HTML files and associates the result with HTML renderer.
func (*Engine) LoadHTMLGlob ¶ added in v1.2.7
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
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
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
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
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
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
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
SetFuncMap sets the FuncMap used for template.FuncMap.
func (*Engine) SetHTMLTemplate ¶ added in v1.2.7
SetHTMLTemplate associate a template with HTML renderer.
func (*Engine) SetTrustedProxies ¶ added in v1.2.7
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
Error represents a error's specification.
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
MarshalJSON implements the json.Marshaller interface.
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
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 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 MiddlewareConfig ¶ added in v1.2.4
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 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.
type RecoveryFunc ¶ added in v1.2.7
type RecoveryFunc func(c *Context, err interface{})
RecoveryFunc defines the function passable to CustomRecovery.
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 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 为路由分组添加中间件
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
examples
|
|
|
basic
command
|
|
|
multiple_service
command
|
|
|
rate_limit
command
|
|
|
validator
command
|
|
|
internal
|
|
|
cmd
command
|
|
|
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. |