Documentation ¶
Overview ¶
server是一个代表服务器的抽象,主要提供注册路由的接口,还有http包到web框架的桥梁
Index ¶
- Constants
- type Context
- func (c *Context) BindJSON(val interface{}) error
- func (c *Context) BindJSONOpt(val interface{}, useNumber, disallowUnknown bool) error
- func (c *Context) FormValue(key string) (string, error)
- func (c *Context) JSON(code int, val any) error
- func (c *Context) JSONOK(val any) error
- func (c *Context) MuchBindJSON(val interface{}) (err error)
- func (c *Context) Next()
- func (c *Context) PathValue(key string) (string, error)
- func (c *Context) QueryValue(key string) (string, error)
- func (c *Context) Render(tplName string, data any) error
- func (c *Context) SetCookie(ck *http.Cookie)
- type FileDownloader
- type FileUploader
- type GoTemplateEngine
- type HTTPServer
- type HTTPServerOption
- type HandleFunc
- type HandlesChain
- type RouterGroup
- type StaticResourceHandler
- type TemplateEngine
Constants ¶
View Source
const BodyBytesKey = "_webz/bodybyteskey"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Context ¶
type Context struct { Req *http.Request Resp http.ResponseWriter FullPath string //完整处理器路径 Keys map[string]any //key/value结构存储一些数据 PathParams map[string]string //这个是解决:id路径参数问题//获取是在查询路由时获取//现在我还没有获取 MathedRoute string //拿取命中路由 //下边这俩是为了设置返回值的//为什么不用resp这个,主要是因为会绕开RespData和Resptatuscode这两个//所以下边这俩主要是middleware读写用的 RespStatusCode int RespData []byte // contains filtered or unexported fields }
Context 代表上下文的抽象 没有用自带的http包里边的Context主要是想实现更多东西
func (*Context) BindJSONOpt ¶ added in v1.1.1
BindJSONOpt 控制是否选择 UseNumber DisallowUnknown UseNumber 这个选项用于将所有数字类型转换为 Number 类型。 disallowUnknown 这个选项用于禁止未知属性。
func (*Context) MuchBindJSON ¶ added in v1.1.1
MuchBindJSON 多次读取数据
func (*Context) QueryValue ¶ added in v1.1.1
QueryValue 查询参数带问号
type FileDownloader ¶ added in v1.1.1
type FileDownloader struct {
Dir string
}
func (FileDownloader) Handle ¶ added in v1.1.1
func (d FileDownloader) Handle() HandleFunc
type FileUploader ¶ added in v1.1.1
type FileUploader struct { FileField string DstPathFunc func(*multipart.FileHeader) string }
func (FileUploader) Handle ¶ added in v1.1.1
func (f FileUploader) Handle() HandleFunc
type GoTemplateEngine ¶ added in v1.1.1
func (*GoTemplateEngine) ParseGlob ¶ added in v1.1.1
func (g *GoTemplateEngine) ParseGlob(pattern string) error
type HTTPServer ¶
type HTTPServer struct { //RouterGroup 用来实现路由的分组 //刚开始是初始化记录的是"/" RouterGroup // contains filtered or unexported fields }
HTTPServer对服务器进行抽象 实现Server里边的方法 这个属性小写是因为我只想通过NewHttpServer进行创建路由,不打算把这个暴露在外边
func (*HTTPServer) ServeHTTP ¶
func (h *HTTPServer) ServeHTTP(writer http.ResponseWriter, Request *http.Request)
用来实现context构建,路由匹配,业务逻辑 不是路由构建
func (*HTTPServer) Start ¶
func (h *HTTPServer) Start(add string) error
Start是用来监听端口的 主要是模仿http.ListenAndServe这个监听端口来封装从而实现更多东西
type HTTPServerOption ¶ added in v1.1.1
type HTTPServerOption func(server *HTTPServer)
func ServerWithTemplateEngine ¶ added in v1.1.1
func ServerWithTemplateEngine(tplEngine TemplateEngine) HTTPServerOption
type RouterGroup ¶
type RouterGroup struct { //Handles 当前组处理器 Handles HandlesChain // contains filtered or unexported fields }
func (*RouterGroup) GET ¶
func (group *RouterGroup) GET(path string, handles ...HandleFunc)
GET 允许传入多个处理器,具体实现稍后再说
func (*RouterGroup) Group ¶
func (group *RouterGroup) Group(relativePath string, handles ...HandleFunc) *RouterGroup
func (*RouterGroup) Use ¶
func (group *RouterGroup) Use(middleware ...HandleFunc) *HTTPServer
type StaticResourceHandler ¶ added in v1.1.1
type StaticResourceHandler struct {
// contains filtered or unexported fields
}
func (*StaticResourceHandler) Handle ¶ added in v1.1.1
func (s *StaticResourceHandler) Handle(ctx *Context)
Source Files ¶
Click to show internal directories.
Click to hide internal directories.