PoliteDog

package module
v0.0.0-...-716261e Latest Latest
Warning

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

Go to latest
Published: Feb 21, 2024 License: GPL-2.0 Imports: 19 Imported by: 0

README

PoliteDog

一个简单易用的Web框架。

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Recovery

func Recovery(ctx *Context)

Recovery 异常统一处理

Types

type Account

type Account struct {
	Users         map[string]string
	UnAuthHandler func(ctx *Context)
}

func (*Account) BasicAuthHandler

func (a *Account) BasicAuthHandler(ctx *Context)

func (*Account) GetBasicAuth

func (a *Account) GetBasicAuth(username string, password string) string

GetBasicAuth 获取Basic认证加密结果

type Context

type Context struct {

	// 请求数据
	Method string
	Path   string

	// 响应数据
	Code int

	// 其它参数
	Keys                  map[string]any
	DisallowUnknownFields bool // 是否校验json对应结构体字段
	// contains filtered or unexported fields
}

Context 上下文封装

func (*Context) Abort

func (c *Context) Abort()

Abort 进入引擎处理上下文

func (*Context) BindJSON

func (c *Context) BindJSON(obj any) error

BindJSON 解析JSON参数

func (*Context) BindXML

func (c *Context) BindXML(obj any) error

BindXML 解析XML参数

func (*Context) Data

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

Data 响应数据

func (*Context) File

func (c *Context) File(code int, filepath string)

File 文件下载

func (*Context) FileAttachment

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

FileAttachment 自定义文件名下载

func (*Context) FileFromFS

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

FileFromFS 从文件系统获取下载(filepath是相对于文件系统的路径)

func (*Context) GetFormFile

func (c *Context) GetFormFile(key string) (*multipart.FileHeader, error)

GetFormFile 获取表单文件,返回文件头

func (*Context) GetKey

func (c *Context) GetKey(keyName string) (any, bool)

GetKey 获取密钥

func (*Context) GetMultipartForm

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

GetMultipartForm 获取原始MultipartForm

func (*Context) GetPostForm

func (c *Context) GetPostForm(key string) any

GetPostForm 获取postForm

func (*Context) GetPostFormArray

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

GetPostFormArray 获取postForm切片

func (*Context) GetQuery

func (c *Context) GetQuery(key string) any

GetQuery 获取query参数

func (*Context) GetQueryArray

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

GetQueryArray 获取query参数切片

func (*Context) HTML

func (c *Context) HTML(code int, html string) error

HTML 响应HTML文本

func (*Context) HTMLTemplate

func (c *Context) HTMLTemplate(code int, name string, data any) error

HTMLTemplate 响应HTML模板

func (*Context) HTMLTemplateGlob

func (c *Context) HTMLTemplateGlob(code int, name string, data interface{}, pattern string) error

func (*Context) JSON

func (c *Context) JSON(code int, data any) error

JSON 响应JSON数据

func (*Context) MustBindWith

func (c *Context) MustBindWith(obj any, binding binding.Binding) error

func (*Context) Next

func (c *Context) Next()

Next 将上下文移交给下一个handler

func (*Context) Redirect

func (c *Context) Redirect(code int, url string) error

Redirect 重定向

func (*Context) Render

func (c *Context) Render(w http.ResponseWriter, r render.Render) error

Render 渲染器

func (*Context) SaveUploadFile

func (c *Context) SaveUploadFile(fileHeader *multipart.FileHeader, savePath string) error

SaveUploadFile 封装文件上传并保存的方法

func (*Context) SetBasicAuth

func (c *Context) SetBasicAuth(username string, password string)

SetBasicAuth 设置Basic认证

func (*Context) SetHeader

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

SetHeader 设置响应头

func (*Context) SetKey

func (c *Context) SetKey(keyName string, keyValue any)

SetKey 设置密钥

func (*Context) Status

func (c *Context) Status(code int)

Status 返回状态码

func (*Context) String

func (c *Context) String(code int, format string, data ...any) error

String 响应纯文本

func (*Context) XML

func (c *Context) XML(code int, data any) error

XML 响应xml数据

type Dog

type Dog struct {
	Routers      []*Router
	RouterGroups []*RouterGroup
	Middlewares  []HandlerFuc
	TmplFuncMap  template.FuncMap
	HTMLRender   render.HTMLRender
	// contains filtered or unexported fields
}

Dog 核心引擎结构体

func NewDog

func NewDog() *Dog

func (*Dog) Handle

func (dog *Dog) Handle() *Dog

Handle 封装

func (*Dog) HttpRequestHandler

func (dog *Dog) HttpRequestHandler(ctx *Context)

HttpRequestHandler 预处理Http请求

func (*Dog) LoadTemplate

func (dog *Dog) LoadTemplate(pattern string)

LoadTemplate 加载模板

func (*Dog) RegisterRouterGroup

func (dog *Dog) RegisterRouterGroup(groups ...*RouterGroup)

RegisterRouterGroup 解析路由组,将路由注册到引擎

func (*Dog) RegisterRouters

func (dog *Dog) RegisterRouters(routers ...*Router)

RegisterRouters 将路由注册到引擎

func (*Dog) Run

func (dog *Dog) Run(host string, port int)

Run 启动!

func (*Dog) RunTLS

func (dog *Dog) RunTLS(host string, port int, certFile string, keysFile string)

RunTLS 支持https

func (*Dog) ServeHTTP

func (dog *Dog) ServeHTTP(w http.ResponseWriter, r *http.Request)

ServeHTTP

func (*Dog) SetFuncMap

func (dog *Dog) SetFuncMap(funcMap template.FuncMap)

SetFuncMap 设置模板渲染过程中可能使用的自定义函数

func (*Dog) SetLogPath

func (dog *Dog) SetLogPath(logPath string)

SetLogPath 设置日志路径

func (*Dog) SetTemplate

func (dog *Dog) SetTemplate(tmpl *template.Template)

SetTemplate 允许开发者自己设置模板

type DogError

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

func NewError

func NewError() *DogError

func (*DogError) Error

func (der *DogError) Error() string

func (*DogError) ExecuteError

func (der *DogError) ExecuteError()

func (*DogError) Put

func (der *DogError) Put(err error)

func (*DogError) Result

func (der *DogError) Result(fn DogErrorFunc)

type DogErrorFunc

type DogErrorFunc func(der *DogError)

DogErrorFunc 暴露给开发者的自定义错误处理函数

type HandlerFuc

type HandlerFuc func(ctx *Context)

type Router

type Router struct {
	RouterTrie   Trie
	HandlerMap   map[string]HandlerFuc
	PreHandlers  []HandlerFuc
	PostHandlers []HandlerFuc
}

Router 路由

func NewRouter

func NewRouter() *Router

func (*Router) DELETE

func (r *Router) DELETE(pattern string, handler HandlerFuc)

func (*Router) GET

func (r *Router) GET(pattern string, handler HandlerFuc)

func (*Router) POST

func (r *Router) POST(pattern string, handler HandlerFuc)

func (*Router) PUT

func (r *Router) PUT(pattern string, handler HandlerFuc)

func (*Router) PostHandle

func (r *Router) PostHandle(handler ...HandlerFuc)

PostHandle 插入后置中间件

func (*Router) PreHandle

func (r *Router) PreHandle(handler ...HandlerFuc)

PreHandle 插入前置中间件

func (*Router) Use

func (r *Router) Use(handler ...HandlerFuc)

Use 默认使用前置中间件

type RouterGroup

type RouterGroup struct {
	Name    string
	Routers *Router
}

RouterGroup 路由组

func NewRouterGroup

func NewRouterGroup(name string) *RouterGroup

func (*RouterGroup) DELETE

func (rg *RouterGroup) DELETE(pattern string, handler HandlerFuc)

func (*RouterGroup) GET

func (rg *RouterGroup) GET(pattern string, handler HandlerFuc)

func (*RouterGroup) POST

func (rg *RouterGroup) POST(pattern string, handler HandlerFuc)

func (*RouterGroup) PUT

func (rg *RouterGroup) PUT(pattern string, handler HandlerFuc)

func (*RouterGroup) PostHandle

func (rg *RouterGroup) PostHandle(handler ...HandlerFuc)

PostHandle 插入后置中间件

func (*RouterGroup) PreHandle

func (rg *RouterGroup) PreHandle(handler ...HandlerFuc)

PreHandle 插入前置中间件

func (*RouterGroup) Use

func (rg *RouterGroup) Use(handler ...HandlerFuc)

Use 默认使用前置中间件

type Trie

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

Trie Router的本质是一棵前缀树,路径存储路由,末尾节点存储该路由对应的method、handler等信息

type TrieNode

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

func (*TrieNode) Insert

func (tn *TrieNode) Insert(method string, pattern string, key string)

Insert 插入节点

func (*TrieNode) Search

func (tn *TrieNode) Search(path string) *TrieNode

Search 搜索路由

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

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