Documentation
¶
Overview ¶
package router 路由注册模块,注册http请求(Get,Post,Delete,Option...via)
Index ¶
- Constants
- Variables
- func HttpError(c Context, err string, code int)
- func SetEnvDebug()
- func SetEnvDevelopment()
- func SetEnvMode(mode string)
- func SetEnvProduction()
- type AccessControl
- type BaseRender
- type BaseRouter
- type Config
- type ConfigHeaders
- type Context
- type Error
- type ErrorHandler
- type HandlerFunc
- type HijackUp
- func (hj *HijackUp) AddHeader(key string, value string)
- func (hj *HijackUp) Close()
- func (hj *HijackUp) GetHttp() string
- func (hj *HijackUp) Header() http.Header
- func (hj *HijackUp) HeaderValue(key string) string
- func (hj *HijackUp) SetCType(contentType string)
- func (hj *HijackUp) SetCookie(cookie http.Cookie)
- func (hj *HijackUp) SetHeader(key string, value string)
- func (hj *HijackUp) Write(data []byte) (size int, err error)
- func (hj *HijackUp) WriteHeader(code int)
- type HttpServer
- type IsRouterHandler
- type NError
- type RegisteredRouters
- type Request
- func (req *Request) AddReqCookie(cookie http.Cookie)
- func (req *Request) CType() string
- func (req *Request) ClientIP() string
- func (req *Request) CookieValue(key string) (string, error)
- func (req *Request) Cookies() []*http.Cookie
- func (req *Request) FormFile(key string) (*UploadFile, error)
- func (req *Request) FormFiles(key string) ([]*UploadFile, error)
- func (req *Request) Header() http.Header
- func (req *Request) HeaderValue(key string) string
- func (req *Request) IsAJAX() bool
- func (req *Request) Method() string
- func (req *Request) Param(key string) string
- func (req *Request) Params() map[string]string
- func (req *Request) Path() string
- func (req *Request) RawQuery() string
- func (req *Request) Req() *http.Request
- func (req *Request) RequestID() string
- func (req *Request) RequestURI() string
- func (req *Request) StoreFormFile(file *UploadFile, fileName string) (int64, error)
- func (req *Request) StoreFormFiles(files []*UploadFile, path string) ([]string, error)
- func (req *Request) Url() string
- type Requester
- type Response
- func (r *Response) AddHeader(key, value string)
- func (r *Response) CloseNotify() <-chan bool
- func (r *Response) Flush()
- func (r *Response) Header() http.Header
- func (r *Response) HeaderValue(key string) string
- func (r *Response) Hijack() (net.Conn, *bufio.ReadWriter, error)
- func (r *Response) Redirect(code int, targetUrl string)
- func (r *Response) Res() http.ResponseWriter
- func (r *Response) SetCType(contenttype string)
- func (r *Response) SetCookie(cookie http.Cookie)
- func (r *Response) SetHeader(key, val string)
- func (r *Response) SetWriter(w http.ResponseWriter) *Response
- func (r *Response) Write(data []byte) (size int, err error)
- func (r *Response) WriteHeader(code int)
- type Rider
- func (r *Rider) ANY(path string, handlers ...HandlerFunc)
- func (r *Rider) AfterHttpResponse(ahf func(Context, int, time.Duration))
- func (r *Rider) CONNECT(path string, handlers ...HandlerFunc)
- func (r *Rider) DELETE(path string, handlers ...HandlerFunc)
- func (r *Rider) Error(errorHandle func(c Context, err string, code int))
- func (r *Rider) GET(path string, handlers ...HandlerFunc)
- func (r *Rider) GetHttpServer() *http.Server
- func (r *Rider) GetLogger() *logger.LogQueue
- func (r *Rider) GetRoutes() *Router
- func (r *Rider) GetServer() *HttpServer
- func (r *Rider) Graceful(port string)
- func (r *Rider) HEAD(path string, handlers ...HandlerFunc)
- func (r *Rider) Kid(path string, middleware ...IsRouterHandler)
- func (r *Rider) Listen(port string) (err error)
- func (r *Rider) Logger(level int) *logger.LogQueue
- func (r *Rider) OPTIONS(path string, handlers ...HandlerFunc)
- func (r *Rider) PATCH(path string, handlers ...HandlerFunc)
- func (r *Rider) POST(path string, handlers ...HandlerFunc)
- func (r *Rider) PUT(path string, handlers ...HandlerFunc)
- func (r *Rider) Routers() *Router
- func (r *Rider) ServeHTTP(w http.ResponseWriter, req *http.Request)
- func (r *Rider) SetAccessCtl(access func(c Context) *AccessControl)
- func (r *Rider) SetHttpMaxDefaultMultipartBodySze(d int64)
- func (r *Rider) SetHttpMaxHeaderBytes(d int)
- func (r *Rider) SetHttpReadTimeout(d time.Duration)
- func (r *Rider) SetHttpWriteTimeout(d time.Duration)
- func (r *Rider) SetStatic(staticPath string, prefix string)
- func (r *Rider) SetViews(tplDir string, extName string, funcMap template.FuncMap)
- func (r *Rider) TRACE(path string, handlers ...HandlerFunc)
- func (r *Rider) USE(handlers ...HandlerFunc)
- func (r *Rider) ViewEngine(render BaseRender)
- type RiderCookie
- type Router
- func (r *Router) ANY(path string, handlers ...HandlerFunc)
- func (r *Router) BeenHandler()
- func (r *Router) CONNECT(path string, handlers ...HandlerFunc)
- func (r *Router) DELETE(path string, handlers ...HandlerFunc)
- func (r *Router) FrontMiddleware(rootMiddleware ...HandlerFunc)
- func (r *Router) GET(path string, handlers ...HandlerFunc)
- func (r *Router) GetServer() *HttpServer
- func (r *Router) HEAD(path string, handlers ...HandlerFunc)
- func (r *Router) Kid(path string, router ...IsRouterHandler)
- func (r *Router) OPTIONS(path string, handlers ...HandlerFunc)
- func (r *Router) PATCH(path string, handlers ...HandlerFunc)
- func (r *Router) POST(path string, handlers ...HandlerFunc)
- func (r *Router) PUT(path string, handlers ...HandlerFunc)
- func (r *Router) Path() string
- func (r *Router) ServeHTTP(w http.ResponseWriter, req *http.Request)
- func (r *Router) SetServer(server *HttpServer)
- func (r *Router) TRACE(path string, handlers ...HandlerFunc)
- func (r *Router) USE(middleware ...HandlerFunc)
- type Stat
- type UploadFile
Constants ¶
const ( MIMEApplicationJSON = "application/json" MIMEApplicationJSONCharsetUTF8 = MIMEApplicationJSON + "; " + charsetUTF8 MIMEApplicationJavaScript = "application/javascript" MIMEApplicationJavaScriptCharsetUTF8 = MIMEApplicationJavaScript + "; " + charsetUTF8 MIMEApplicationXML = "application/xml" MIMEApplicationXMLCharsetUTF8 = MIMEApplicationXML + "; " + charsetUTF8 MIMETextXML = "text/xml" MIMETextXMLCharsetUTF8 = MIMETextXML + "; " + charsetUTF8 MIMEApplicationForm = "application/x-www-form-urlencoded" MIMEApplicationProtobuf = "application/protobuf" MIMEApplicationMsgpack = "application/msgpack" MIMETextHTML = "text/html" MIMETextHTMLCharsetUTF8 = MIMETextHTML + "; " + charsetUTF8 MIMETextPlain = "text/plain" MIMETextPlainCharsetUTF8 = MIMETextPlain + "; " + charsetUTF8 MIMEMultipartForm = "multipart/form-data" MIMEOctetStream = "application/octet-stream" )
MIME types
const ( HeaderDate = "Date" HeaderEtag = "Etag" HeaderAccept = "Accept" HeaderAcceptEncoding = "Accept-Encoding" HeaderAllow = "Allow" HeaderAuthorization = "Authorization" HeaderContentDisposition = "Content-Disposition" HeaderContentEncoding = "Content-Encoding" HeaderContentLength = "Content-Length" HeaderContentType = "Content-Type" HeaderCookie = "Cookie" HeaderSetCookie = "Set-Cookie" HeaderIfModifiedSince = "If-Modified-Since" HeaderLastModified = "Last-Modified" HeaderLocation = "Location" HeaderUpgrade = "Upgrade" HeaderVary = "Vary" HeaderWWWAuthenticate = "WWW-Authenticate" HeaderXForwardedFor = "X-Forwarded-For" HeaderXForwardedProto = "X-Forwarded-Proto" HeaderXForwardedProtocol = "X-Forwarded-Protocol" HeaderXForwardedSsl = "X-Forwarded-Ssl" HeaderXUrlScheme = "X-Url-Scheme" HeaderXHTTPMethodOverride = "X-HTTP-Method-Override" HeaderXRealIP = "X-Real-IP" HeaderXRequestID = "X-Request-ID" HeaderServer = "Server" HeaderOrigin = "Origin" // Access control HeaderAccessControlRequestMethod = "Access-Control-Request-Method" HeaderAccessControlRequestHeaders = "Access-Control-Request-Headers" HeaderAccessControlAllowOrigin = "Access-Control-Allow-Origin" HeaderAccessControlAllowMethods = "Access-Control-Allow-Methods" HeaderAccessControlAllowHeaders = "Access-Control-Allow-Headers" HeaderAccessControlAllowCredentials = "Access-Control-Allow-Credentials" HeaderAccessControlExposeHeaders = "Access-Control-Expose-Headers" HeaderAccessControlMaxAge = "Access-Control-Max-Age" // Security HeaderStrictTransportSecurity = "Strict-Transport-Security" HeaderXContentTypeOptions = "X-Content-Type-Options" HeaderXXSSProtection = "X-XSS-Protection" HeaderXFrameOptions = "X-Frame-Options" HeaderContentSecurityPolicy = "Content-Security-Policy" )
Headers
const ( HTTPGET = http.MethodGet HTTPPOST = http.MethodPost HTTPHEAD = http.MethodHead HTTPOPTIONS = http.MethodOptions HTTPPUT = http.MethodPut HTTPPATCH = http.MethodPatch HTTPDELETE = http.MethodDelete HTTPCONNECT = http.MethodConnect )
const ( BestCompression = gzip.BestCompression BestSpeed = gzip.BestSpeed DefaultCompression = gzip.DefaultCompression NoCompression = gzip.NoCompression )
const (
Server = "rider"
)
Variables ¶
var ( ENV_Production = "production" ENV_Development = "development" ENV_Debug = "debug" )
var ErrorHandle func(c Context, err string, code int)
var GlobalENV = ENV_Production
默认的执行的系统的环境,生产者环境
Functions ¶
func SetEnvDebug ¶
func SetEnvDebug()
func SetEnvDevelopment ¶
func SetEnvDevelopment()
func SetEnvProduction ¶
func SetEnvProduction()
Types ¶
type AccessControl ¶ added in v1.1.8
type BaseRender ¶
type BaseRouter ¶
type BaseRouter interface { USE(handlers ...HandlerFunc) //添加中间件 ANY(path string, handlers ...HandlerFunc) POST(path string, handlers ...HandlerFunc) GetServer() *HttpServer SetServer(*HttpServer) GET(path string, handlers ...HandlerFunc) HEAD(path string, handlers ...HandlerFunc) OPTIONS(path string, handlers ...HandlerFunc) PUT(path string, handlers ...HandlerFunc) PATCH(path string, handlers ...HandlerFunc) DELETE(path string, handlers ...HandlerFunc) Kid(path string, router *Router) // contains filtered or unexported methods }
跟路由和子路由需要实现的方法
type Config ¶
type Config struct { ConfigHeaders *ConfigHeaders EnableWeakEtag bool }
var DefaultConfig *Config = &Config{ ConfigHeaders: DefaultConfigHeaders, EnableWeakEtag: true, }
type ConfigHeaders ¶
type ConfigHeaders struct { //其他默认响应头 Server string //rider Date string //time.Now().UTC().Format(http.TimeFormat) }
var DefaultConfigHeaders *ConfigHeaders = &ConfigHeaders{ Server: "rider", Date: time.Now().UTC().Format(http.TimeFormat), }
type Context ¶
type Context interface { //实现中间件的链表处理 Next(err ...NError) error //获取Response响应体内容 Response() *Response //获取请求体部分 Request() *Request //获取app初始化时注册的logger服务,用于生成日志 Logger() *logger.LogQueue //###获取请求相关的数据, //给context传递变量,该变量在整个请求的传递中一直有效(中间件传递) SetLocals(key string, value interface{}) //通过SetLocals设置的值可以在整个响应处理环节通过GetLocals获取 GetLocals(key string) interface{} Locals() map[string]interface{} //获取SetLocals设置的所有变量,用户输出给模板 // 删除locals里面的数据 DeleteLocals(key string) // 删除locals的所有信息 DeleteAllLocals() //只获取请求url中的查询字符串querystring的map[]string值 Query() url.Values //根据字段名直接查询querystring某个字段名对应的值 QueryString(key string) string // 当query不存在某一字段的值时,返回一个默认的值 QueryDefault(key string, def string) string // 获取请求其 Body() []byte //只获取post,put等的请求参数, PostForm() url.Values //根据字段名直接查询"请求体"某中个字段名对应的值 PostFormValue(key string) string // 当post参数不存在某一字段的值时,返回一个默认的值 PostFormDefault(key string, def string) string // 返回请求的参数(包括query和body的) Form() url.Values //根据字段名直接查询"请求参数"某中个字段名对应的值 FormValue(key string) string // 当请求参数不存在某一字段的值时,返回一个默认的值 FormDefault(key string, def string) string //获取请求路由 /:id/:xx中值,路由参数 Params() map[string]string //获取请求路由中某字段的值 Param(key string) string //注册的请求路径中存在正则匹配规则,取得的参数和取正则sub参数一样(详见param例子) PathParams() []string //通过正则匹配后得到的路径上的一些参数 //当请求头的content-type为multipart/form-data时,获取请求中key对应的文件信息(多个文件时,只会获取第一个) FormFile(key string) (*UploadFile, error) //当请求头的content-type为multipart/form-data时,获取请求中key对应的文件列表 FormFiles(key string) ([]*UploadFile, error) //将file保存,fileName指定完整的路径和名称(先调用FormFile或者FormFiles将返回的file传入即可) StoreFormFile(file *UploadFile, fileName string) (int64, error) //先通过FormFiles获取文件列表,指定path目录,存储文件的文件夹。文件名将会用随机字符串加文件的后缀名(file.GetFileExt()) StoreFormFiles(files []*UploadFile, path string) ([]string, error) //获取请求头信息 Header() http.Header //根据key获取请求头某一字段的值 HeaderValue(key string) string //获取请求头的完整url URL() string //获取请求头的path Path() string //获取响应头的HTTP方法 Method() string //获取请求来源的IP地址 ClientIP() string //获取分配的请求id RequestID() string //判断请求是否为ajax IsAjax() bool //获取请求的cookies Cookies() []*http.Cookie //获取请求体中某一字段的cookie值 CookieValue(key string) (string, error) //##响应相关 //获取响应的状态码 Status() int // 获取请求花费时间 GetTimeCost() string //将http请求升级为hijack,hijack的信息保存在HijackUp中 Hijack() (*HijackUp, error) //给客户端发送文件(可用户静态文件处理) SendFile(path string) error //下载,fileName为完整路径,name为下载时指定的下载名称,传""使用文件本身名称,typ指定attachment还是inline的方式下载,默认为attchment Download(fileName string, name string, typ string) error //获取完整的响应头信息 WHeader() http.Header //获取响应头的某一字段值 WHeaderValue(key string) string //设置cookie SetCookie(cookie http.Cookie) //根据cookie名删除cookie DeleteCookie(cookieName string) //获取系统默认注册的jwt服务("github.com/dgrijalva/jwt-go"),具体使用例子参考example/jwt Jwt() *riderJwter //设置响应头 SetHeader(key, value string) //给响应头添加值 AddHeader(key, value string) //给响应头设置contenttype SetCType(contentType string) //重定向 Redirect(code int, targetUrl string) //给客户端发送数据 Send(code int, d []byte) (int, error) //发送字符串 SendString(code int, s string) (int, error) //给客户端发送json格式的数据 SendJson(code int, i interface{}) (int, error) //负责模板渲染 ,只要实现了BaseRender,注册app服务是直接修改tplsRender的值 Render(tplName string, data interface{}) // 获取服务主机 Host() string // contains filtered or unexported methods }
type ErrorHandler ¶
type HandlerFunc ¶
type HandlerFunc func(context Context)
func Gzip ¶
func Gzip(level int) HandlerFunc
func RiderJwt ¶
func RiderJwt(tokenKey string, secret string, expires int, riderCookie *RiderCookie, useCookie bool) HandlerFunc
func (HandlerFunc) BeenHandler ¶
func (h HandlerFunc) BeenHandler()
type HijackUp ¶
type HijackUp struct { Size int64 // contains filtered or unexported fields }
func (*HijackUp) WriteHeader ¶
type HttpServer ¶
type HttpServer struct {
// contains filtered or unexported fields
}
func (*HttpServer) NewHttpServer ¶
func (h *HttpServer) NewHttpServer() *HttpServer
type IsRouterHandler ¶
type IsRouterHandler interface {
BeenHandler()
}
type Request ¶
type Request struct {
// contains filtered or unexported fields
}
func NewRequest ¶
func (*Request) CookieValue ¶
获取某一字段的cookie
func (*Request) FormFile ¶
func (req *Request) FormFile(key string) (*UploadFile, error)
当客户端的请求头的content-type为multipart/form-data时获取请求体内的文件 要获取请求传过来的文件,必须先调用r.parseMultipartForm(调用r.FormFile时会自动调用r.parseMultipartForm所以无需调用,只能获取第一个文件) 只会返回第一个文件
func (*Request) FormFiles ¶
func (req *Request) FormFiles(key string) ([]*UploadFile, error)
根据key返回key的文件列表
func (*Request) HeaderValue ¶
func (*Request) Path ¶
Path returns requested path.
The path is valid until returning from RequestHandler.
func (*Request) StoreFormFile ¶
func (req *Request) StoreFormFile(file *UploadFile, fileName string) (int64, error)
获取客户端传过来的文件,并且指定保存路径进行保存
func (*Request) StoreFormFiles ¶
func (req *Request) StoreFormFiles(files []*UploadFile, path string) ([]string, error)
文件名会根据用生成的随机字符串,加上源文件后缀名,path为文件保存的路径 返回文件名列表
type Requester ¶
type Requester interface { NewRequest(r *http.Request) *Request //用传入的request生成一个Request RequestID() string //获取请求的id RawQuery() string //获取请求的原始字符串 a=1&b=2 FormFile(key string) (*UploadFile, error) //请求头为multipart/form-data时获取key字段域的第一个文件 FormFiles(key string) ([]*UploadFile, error) //请求头为multipart/form-data时获取key字段域的文件列表 StoreFormFile(file *UploadFile, fileName string) (int64, error) //FormFile返回一个文件,然后传入这里的第一个参数,保存到fileName文件 StoreFormFiles(files []*UploadFile, path string) ([]string, error) //FormFile返回文件列表,传入第一个参数,保存的文件名是随机的字符串,后缀名取文件上传时的本身后缀名 ContentType() string //获取请求体的content-type Header(key string) http.Header //获取请求头信息 ClientIP() string //获取远程请求者的ip地址,会获取源地址(非代理地址) Path() string //获取请求的url路径 IsAJAX() bool //验证请求是否为ajax请求 Url() string //获取完整的请求路径 /x/x/a?a=x&c=s Method() string //获取请求的方法 Params() map[string]string //获取请求的路径参数 Param(key string) string //获取某个请求路径参数的值(参数定义时的字段请勿重复,后面的直接覆盖之前的值) // contains filtered or unexported methods }
type Response ¶
type Response struct { Size int64 // contains filtered or unexported fields }
func NewResponse ¶
func NewResponse(w http.ResponseWriter, server *HttpServer) (r *Response)
func (*Response) Flush ¶
func (r *Response) Flush()
Flush implements the http.Flusher interface to allow an HTTP handler to flush buffered data to the client. See http.Flusher(https://golang.org/pkg/net/http/#Flusher)
func (*Response) HeaderValue ¶
func (*Response) Hijack ¶
Hijack implements the http.Hijacker interface to allow an HTTP handler to take over the connection. See https://golang.org/pkg/net/http/#Hijacker
func (*Response) Res ¶ added in v1.1.8
func (r *Response) Res() http.ResponseWriter
func (*Response) WriteHeader ¶
type Rider ¶ added in v1.1.8
type Rider struct {
// contains filtered or unexported fields
}
http服务的入口,用户初始化和缓存服务的一些信息
func (*Rider) ANY ¶ added in v1.1.8
func (r *Rider) ANY(path string, handlers ...HandlerFunc)
func (*Rider) AfterHttpResponse ¶ added in v1.1.8
请求处理完成,自定义事件(比如自定义日志打印,自定义日志库)
func (*Rider) CONNECT ¶ added in v1.1.8
func (r *Rider) CONNECT(path string, handlers ...HandlerFunc)
func (*Rider) DELETE ¶ added in v1.1.8
func (r *Rider) DELETE(path string, handlers ...HandlerFunc)
func (*Rider) GET ¶ added in v1.1.8
func (r *Rider) GET(path string, handlers ...HandlerFunc)
func (*Rider) GetHttpServer ¶ added in v1.1.8
返回http.Server供自定义
func (*Rider) HEAD ¶ added in v1.1.8
func (r *Rider) HEAD(path string, handlers ...HandlerFunc)
func (*Rider) Kid ¶ added in v1.1.8
func (r *Rider) Kid(path string, middleware ...IsRouterHandler)
func (*Rider) OPTIONS ¶ added in v1.1.8
func (r *Rider) OPTIONS(path string, handlers ...HandlerFunc)
func (*Rider) PATCH ¶ added in v1.1.8
func (r *Rider) PATCH(path string, handlers ...HandlerFunc)
func (*Rider) POST ¶ added in v1.1.8
func (r *Rider) POST(path string, handlers ...HandlerFunc)
func (*Rider) PUT ¶ added in v1.1.8
func (r *Rider) PUT(path string, handlers ...HandlerFunc)
func (*Rider) ServeHTTP ¶ added in v1.1.11
func (r *Rider) ServeHTTP(w http.ResponseWriter, req *http.Request)
func (*Rider) SetAccessCtl ¶ added in v1.1.8
func (r *Rider) SetAccessCtl(access func(c Context) *AccessControl)
设置跨域信息
func (*Rider) SetHttpMaxDefaultMultipartBodySze ¶ added in v1.2.3
func (*Rider) SetHttpMaxHeaderBytes ¶ added in v1.2.3
func (*Rider) SetHttpReadTimeout ¶ added in v1.2.3
func (*Rider) SetHttpWriteTimeout ¶ added in v1.2.3
func (*Rider) SetViews ¶ added in v1.1.8
设置模板路径(默认不缓存) tplDir以"/"开头,不会对其进行操作。如果直接以路径开头的,前面会默认跟上当前工作路径 调用该方法,默认启用模版
func (*Rider) TRACE ¶ added in v1.1.8
func (r *Rider) TRACE(path string, handlers ...HandlerFunc)
func (*Rider) ViewEngine ¶ added in v1.1.8
func (r *Rider) ViewEngine(render BaseRender)
设置模板接口 (实现BaseRender接口的Render方法) 须在SetViews方法之前调用
type RiderCookie ¶ added in v1.1.9
type Router ¶
type Router struct { Handler HandlerFunc Middleware []HandlerFunc Method string //定义的请求的方法 // contains filtered or unexported fields }
子路由配置
func (*Router) ANY ¶
func (r *Router) ANY(path string, handlers ...HandlerFunc)
http方法的子路由绑定使用,或者根路由通过入口最终进入的实现http服务绑定的地方
func (*Router) BeenHandler ¶
func (r *Router) BeenHandler()
func (*Router) CONNECT ¶
func (r *Router) CONNECT(path string, handlers ...HandlerFunc)
func (*Router) DELETE ¶
func (r *Router) DELETE(path string, handlers ...HandlerFunc)
func (*Router) FrontMiddleware ¶
func (r *Router) FrontMiddleware(rootMiddleware ...HandlerFunc)
添加中间件(将根路由服务的中间件加进来)
func (*Router) GET ¶
func (r *Router) GET(path string, handlers ...HandlerFunc)
func (*Router) HEAD ¶
func (r *Router) HEAD(path string, handlers ...HandlerFunc)
func (*Router) Kid ¶
func (r *Router) Kid(path string, router ...IsRouterHandler)
func (*Router) OPTIONS ¶
func (r *Router) OPTIONS(path string, handlers ...HandlerFunc)
func (*Router) PATCH ¶
func (r *Router) PATCH(path string, handlers ...HandlerFunc)
func (*Router) POST ¶
func (r *Router) POST(path string, handlers ...HandlerFunc)
func (*Router) PUT ¶
func (r *Router) PUT(path string, handlers ...HandlerFunc)
func (*Router) TRACE ¶
func (r *Router) TRACE(path string, handlers ...HandlerFunc)
type UploadFile ¶
type UploadFile struct { File multipart.File Ext string Name string // contains filtered or unexported fields }
func NewUploadFile ¶
func NewUploadFile(f multipart.File, header *multipart.FileHeader) *UploadFile