web

package
v0.0.0-...-ae40e7c Latest Latest
Warning

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

Go to latest
Published: May 3, 2018 License: MIT Imports: 25 Imported by: 0

Documentation

Overview

package web 实现了处理http请求的基本工具

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckResult

func CheckResult(m *meta.MethodMetadata) error

CheckResult 检查元数据的第一个返回值是否符合web.Result接口

func HttpMethodName

func HttpMethodName(name string) []string

HttpMethod 提取name中包含的Http方法名,如果不包含任何方法名,则返回Post

func HttpResultRouter

func HttpResultRouter(resultName string, gen router.RouterExcutorGenerator) []router.Router

HttpResultRouter 生成Http方法名路由

func NewControllerRouter

func NewControllerRouter(instance interface{}) router.Router

NewControllerRouter 创建控制器路由,根据方法返回值确定该方法处理哪种形式的http请求

instance:控制器对象
控制器方法必须满足如下格式:
 func (this *SomeController) Method(param *ParamStruct) web.Result
 this:必须是控制器指针
 param:可以没有或者有多个,如果有则类型必须为结构体指针类型
 第一个返回结果最好是能够赋值给web.Result接口,也可以是其他类型
return:执行成功则返回控制器的router.Router

func NewCustomControllerRouter

func NewCustomControllerRouter(instance interface{}, name string, methodsInfo []RouterMethod) router.Router

NewCustomControllerRouter 创建定制化控制器路由

instance:控制器对象
name:控制器路由名称,为空时使用instance类名(不含Controller)
methodsInfo:路由方法信息数组,RouterName为空时使用方法名
return:执行成功则返回控制器的router.Router

func NewFileRouter

func NewFileRouter(name string, path string) router.Router

NewFileRouter 创建文件路由,只能匹配Get类型的文件请求,返回指定的文件

name:路由名称
path:文件路径
return:执行成功则返回router.Router

func NewFuncRouter

func NewFuncRouter(name string, function interface{}) router.Router

NewFuncRouter 创建函数路由,根据方法返回值确定该方法处理哪种形式的http请求

name:路由名称
function:函数
函数必须满足如下格式:
 func Method(param *ParamStruct) web.Result
 param:可以没有或者有多个,如果有则类型必须为结构体指针类型
 第一个返回结果最好是能够赋值给web.Result接口,也可以是其他类型
return:执行成功则返回router.Router

func NewMutableFuncRouter

func NewMutableFuncRouter(name string, function interface{}) router.Router

NewMutableFuncRouter 创建函数路由,可匹配无限层级和任意http方法的请求

name:路由名称
function:函数
函数必须满足如下格式:
 func Method(param *ParamStruct) web.Result
 param:可以没有或者有多个,如果有则类型必须为结构体指针类型
 第一个返回结果最好是能够赋值给web.Result接口,也可以是其他类型
return:执行成功则返回router.Router

func NewRootRouter

func NewRootRouter() router.Router

NewRootRouter 创建适用于Web App的根路由

func NewSpaceRouter

func NewSpaceRouter(name string) router.Router

NewSpaceRouter 创建空间路由

name:路由名称
return:执行成功则返回router.Router

func NewSpaceRouters

func NewSpaceRouters(url string) (router.Router, router.Router)

NewSpaceRouters 创建多级空间路由

url:路由,使用/分割
return:执行成功则返回(根路由,叶路由)

func NewStaticRouter

func NewStaticRouter(name string, path string) router.Router

NewStaticRouter 创建静态文件路由,只能匹配Get类型的文件请求,返回指定的文件

name:路由名称
path:文件目录路径
return:执行成功则返回router.Router

Types

type AdvancedExecutor

type AdvancedExecutor struct {
	router.BaseRouterExecutor
	Method *meta.MethodMetadata //执行方法
}

高级执行器

func NewAdvancedExecutor

func NewAdvancedExecutor(method *meta.MethodMetadata) *AdvancedExecutor

NewAdvancedExecutor 创建高级执行器

func (*AdvancedExecutor) Execute

func (this *AdvancedExecutor) Execute() (interface{}, error)

Excute 执行

type CommonHttpResult

type CommonHttpResult struct {
	Status      StatusCode //状态码
	ContentType string     //内容类型
}

公共http结果

func (*CommonHttpResult) Code

func (this *CommonHttpResult) Code() StatusCode

Code 返回状态码

func (*CommonHttpResult) Message

func (this *CommonHttpResult) Message() string

Message 返回状态信息

func (*CommonHttpResult) SetHeader

func (this *CommonHttpResult) SetHeader(writer io.Writer) (http.ResponseWriter, error)

SetHeader 设置响应头信息

func (*CommonHttpResult) WriteHeader

func (this *CommonHttpResult) WriteHeader(writer http.ResponseWriter)

WriteHeader 写入响应头信息,对于

type ConnectResult

type ConnectResult Result

可用于Connect方法的返回结果

type Context

type Context struct {
	router.BaseContext
	HttpContext *connector.HttpContext //http上下文
	Session     session.Session        //http会话
	CSRF        session.Session        //csrf会话
	End         router.Router          //处理当前上下文的路由
	Processor   *HttpProcessor         //生成当前上下文的处理器
}

func NewContext

func NewContext(segments []string, context *connector.HttpContext, processor *HttpProcessor) (*Context, error)

NewContext 创建上下文信息

func (*Context) AddCookie

func (this *Context) AddCookie(cookie *http.Cookie)

AddCookie 添加Cookie

func (*Context) Api

func (this *Context) Api(data interface{}) HttpResult

Api 返回Api类型结果

func (*Context) Cookie

func (this *Context) Cookie(name string) (*http.Cookie, bool)

Cookie 获取Cookie

func (*Context) Data

func (this *Context) Data(data []byte) *DataResult

Data 返回数据类型结果

func (*Context) File

func (this *Context) File(path string) *FileResult

File 返回文件类型结果

func (*Context) Json

func (this *Context) Json(data interface{}) *JsonResult

Json 返回Json类型结果

func (*Context) NotFound

func (this *Context) NotFound() *NotFoundResult

NotFound 返回NotFound类型结果

func (*Context) ParamBool

func (this *Context) ParamBool(key string) (bool, error)

ParamBool 获取http参数Bool

func (*Context) ParamFile

func (this *Context) ParamFile(key string) (*FormFile, error)

ParamFile 获取http参数文件

func (*Context) ParamFiles

func (this *Context) ParamFiles(key string) ([]*FormFile, error)

ParamFiles 获取http参数文件数组

func (*Context) ParamFloat

func (this *Context) ParamFloat(key string) (float64, error)

ParamFloat 获取http参数Float

func (*Context) ParamInt

func (this *Context) ParamInt(key string) (int, error)

ParamInt 获取http参数Int

func (*Context) ParamString

func (this *Context) ParamString(key string) (string, error)

ParamString 获取http参数字符串

func (*Context) ParamStringArray

func (this *Context) ParamStringArray(key string) ([]string, error)

ParamStringArray 获取http参数字符串数组

func (*Context) PartialView

func (this *Context) PartialView(path string, data ...interface{}) *PartialViewResult

PartialView 返回部分视图类型结果

func (*Context) Redirect

func (this *Context) Redirect(url string) *RedirectResult

Redirect 返回临时重定向类型结果

func (*Context) RedirectPermanently

func (this *Context) RedirectPermanently(url string) *RedirectResult

RedirectPermanently 返回永久重定向类型结果

func (*Context) Redispatch

func (this *Context) Redispatch(path string) *UserDefinedResult

Redispatch 重新分发,将当前请求交给另一个path处理

func (*Context) SetValue

func (this *Context) SetValue(name string, value string)

SetValue 设置值

func (*Context) ValidateCSRF

func (this *Context) ValidateCSRF() bool

ValidateCSRF 验证表单请求中是否存在csrf的token并且该token有效,验证后token立即失效

func (*Context) Value

func (this *Context) Value(name string) (string, bool)

Value 返回值

func (*Context) Values

func (this *Context) Values(name string) ([]string, bool)

Values 返回值数组

func (*Context) View

func (this *Context) View(path string, data ...interface{}) *ViewResult

View 返回视图类型结果

func (*Context) WriteResult

func (this *Context) WriteResult(result Result) error

WriteResult 将Result写入http response流

func (*Context) WriteString

func (this *Context) WriteString(value string) error

WriteString 将字符串写入http response流

func (*Context) Xml

func (this *Context) Xml(data interface{}) *XmlResult

Xml 返回Xml类型结果

type ContextCVF

type ContextCVF struct {
}

*web.Context

func (*ContextCVF) Contains

func (this *ContextCVF) Contains(context *Context, name string, t reflect.Type) bool

Contains 查找context是否包含指定的值

func (*ContextCVF) String

func (this *ContextCVF) String(context *Context, name string, t reflect.Type) []string

String 查找context中指定的字符串值

func (*ContextCVF) Value

func (this *ContextCVF) Value(context *Context, name string, t reflect.Type) interface{}

Value 生成指定类型的值

type ContextValueContainer

type ContextValueContainer struct {
	Context *Context
}

http上下文值容器 优先级:web.Processor.Finders > web.Processor.MutiTypeFinders > web.Processor.ValueContainer

func NewContextValueContainer

func NewContextValueContainer(context *Context) *ContextValueContainer

NewContextValueContainer 创建http上下文值容器

func (*ContextValueContainer) Contains

func (this *ContextValueContainer) Contains(name string, t reflect.Type) (meta.ValueProvider, bool)

String 根据名称和类型返回相应的字符串值,返回的bool表示该值是否存在

type ContextValueFinder

type ContextValueFinder interface {
	// Contains 查找context是否包含指定的值
	Contains(context *Context, name string, t reflect.Type) bool
	// String 查找context中指定的字符串值
	String(context *Context, name string, t reflect.Type) []string
	// Value 生成指定类型的值
	Value(context *Context, name string, t reflect.Type) interface{}
}

http上下文值查找器

type ContextValueProvider

type ContextValueProvider struct {
	Context *Context
	Finder  ContextValueFinder
	Name    string
	Type    reflect.Type
}

http上下文值提供器

func (*ContextValueProvider) String

func (this *ContextValueProvider) String() []string

String 根据名称和类型返回相应的字符串值

func (*ContextValueProvider) Value

func (this *ContextValueProvider) Value() interface{}

Value 根据名称和类型生成相应类型的数据

type DataResult

type DataResult struct {
	CommonHttpResult
	Data []byte
}

数据结果

func (*DataResult) WriteTo

func (this *DataResult) WriteTo(writer io.Writer) error

WriteTo 将Result的内容写入writer

type DefaultHttpProcessorEvent

type DefaultHttpProcessorEvent struct {
}

默认事件

func (*DefaultHttpProcessorEvent) Error

func (this *DefaultHttpProcessorEvent) Error(processor *HttpProcessor, context *Context, err error)

Error 出现错误时触发

func (*DefaultHttpProcessorEvent) Request

func (this *DefaultHttpProcessorEvent) Request(processor *HttpProcessor, context *Context) bool

Request 每次出现一个新请求的时候触发,返回值决定是否处理该请求

func (*DefaultHttpProcessorEvent) RequestFinish

func (this *DefaultHttpProcessorEvent) RequestFinish(processor *HttpProcessor, context *Context, result []interface{})

RequestFinish 每次请求执行完成的时候触发

type DeleteResult

type DeleteResult Result

可用于Delete方法的返回结果

type Error

type Error string

错误信息

const (
	ErrorNotStructPtr            Error = "ErrorNotStructPtr(W10030):(%s)不是结构体指针类型"
	ErrorNoSpecificMethod        Error = "ErrorNoSpecificMethod(W10031):控制器(%s)不存在指定的方法(%s)"
	ErrorFirstReturnMustBeResult Error = "ErrorFirstReturnMustBeResult(W10040):第一个返回值类型(%s)不符合web.Result接口"
	ErrorNoReturn                Error = "ErrorNoReturn(W10041):函数(%s)至少拥有一个返回值并且第一个返回值必须符合web.Result类型"

	ErrorParamNotExist  Error = "ErrorParamNotExist(W10100):参数(%s)不存在"
	ErrorRouterNotFound Error = "ErrorRouterNotFound(W10110):路由(%s)不存在"
	ErrorInvalidContext Error = "ErrorInvalidContext(W10120):无效的上下文(%s),无法转换为web.Context"

	ErrorInvalidWriter      Error = "ErrorInvalidWriter(W10200):无效的http写入器"
	ErrorInvalidPartialView Error = "ErrorInvalidPartialView(W10300):无效的部分视图(%s),找不到指定名称(%s)的模板"
	ErrorInvalidKey         Error = "ErrorInvalidKey(W10400):无效的Key(%s)"
	ErrorParamMustBeFunc    Error = "ErrorParamMustBeFunc(W10500):参数必须是函数"
)

错误码

func (Error) Error

func (this Error) Error() error

Error 生成error类型

func (Error) Format

func (this Error) Format(data ...interface{}) Error

Format 格式化错误信息并生成新的错误信息

func (Error) String

func (this Error) String() string

String 返回错误字符串描述

type FileExecutor

type FileExecutor struct {
	router.BaseRouterExecutor
	// contains filtered or unexported fields
}

文件执行器,用于返回特定文件

func NewFileExecutor

func NewFileExecutor(path string) *FileExecutor

NewFileExecutor 创建文件执行器

func (*FileExecutor) Execute

func (this *FileExecutor) Execute() (interface{}, error)

Excute 执行

type FileResult

type FileResult struct {
	CommonHttpResult
	Context  *Context //请求上下文
	FilePath string   //本地文件路径
}

文件结果

func (*FileResult) WriteTo

func (this *FileResult) WriteTo(writer io.Writer) error

WriteTo 将Result的内容写入writer

type FormFile

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

表单文件

func (*FormFile) Close

func (this *FormFile) Close()

Close 关闭表单文件

func (*FormFile) File

func (this *FormFile) File() multipart.File

File 返回表单文件

func (*FormFile) FileName

func (this *FormFile) FileName() string

FileName 返回文件名

func (*FormFile) Header

func (this *FormFile) Header() textproto.MIMEHeader

Header 返回文件头信息

func (*FormFile) SaveTo

func (this *FormFile) SaveTo(path string) error

SaveTo 将文件保存到指定路径,保存完毕后自动关闭表单文件

type FormFileCVF

type FormFileCVF struct {
}

*web.FormFile

func (*FormFileCVF) Contains

func (this *FormFileCVF) Contains(context *Context, name string, t reflect.Type) bool

Contains 查找context是否包含指定的值

func (*FormFileCVF) String

func (this *FormFileCVF) String(context *Context, name string, t reflect.Type) []string

String 查找context中指定的字符串值

func (*FormFileCVF) Value

func (this *FormFileCVF) Value(context *Context, name string, t reflect.Type) interface{}

Value 生成指定类型的值

type FormFilesCVF

type FormFilesCVF struct {
	FormFileCVF
}

[]*web.FormFile

func (*FormFilesCVF) Value

func (this *FormFilesCVF) Value(context *Context, name string, t reflect.Type) interface{}

Value 生成指定类型的值

type GetPostResult

type GetPostResult Result

可用于Get和Post方法的返回结果

type GetResult

type GetResult Result

可用于Get方法的返回结果

type HeadResult

type HeadResult Result

可用于Head方法的返回结果

type HttpConfig

type HttpConfig struct {
	Config              config.Config            //配置信息
	Root                string                   //应用根目录
	App                 string                   //应用名称
	Https               bool                     //是否启用https,可选,默认为false
	Port                int                      //监听端口,可选,默认为80,https为true则默认为443
	Cert                string                   //证书(PEM)路径,如果启用了https则必填
	PrivateKey          string                   //私钥(PEM)路径,如果启用了https则必填
	Home                string                   //首页地址
	Session             bool                     //是否启用session
	SessionType         string                   //session类型,参考tinygo/session,默认为memory
	SessionSource       string                   //session源,参考tinygo/session,默认为空
	SessionExpire       int                      //session过期时间,单位为秒
	SessionCookieName   string                   //Session Cookie名
	SessionCookieExpire int                      //Session Cookie的过期时间,单位为秒,默认为0(0表示浏览器关闭后过期)
	CSRF                bool                     //是否启用csrf
	CSRFType            string                   //session类型,参考tinygo/session,默认为memory
	CSRFSource          string                   //session源,参考tinygo/session,默认为空
	CSRFExpire          int                      //csrf token过期时间,单位为秒
	CSRFCookieName      string                   //csrf Cookie 名
	CSRFTokenName       string                   //csrf 表单名
	CSRFCookieExpire    int                      //csrf Cookie的过期时间,单位为秒,默认为0(0表示浏览器关闭后过期)
	Static              []string                 //静态文件目录,默认为"content"
	List                bool                     //静态文件目录是否允许显示目录列表,默认为false
	View                string                   //视图文件目录,默认为"views"
	Precompile          bool                     //是否预编译视图,默认为false
	Api                 string                   //使用Api返回的数据的解析格式,默认为auto(其他设置包括json,xml)
	Favicon             string                   //网站图标路径
	Robots              string                   //爬虫协议文件路径
	Log                 bool                     //是否启用日志
	LogType             string                   //日志类型,可以为console或file
	LogPath             string                   //日志路径,日志类型为file的时候需要
	LogAsync            bool                     //异步日志,默认为false
	LayoutConfigPath    string                   //布局配置文件名
	TemplateExt         string                   //视图文件扩展名
	TemplateName        string                   //模板文件内部分模板名,用于返回部分视图时使用
	MaxRequestMemory    int                      //单次请求最大占用内存大小,默认32 MB
	TemplateConfig      *template.TemplateConfig //视图模板配置
}

Http配置

func NewHttpConfig

func NewHttpConfig() *HttpConfig

NewHttpConfig 创建默认的Http配置

func ReadHttpConfig

func ReadHttpConfig(appDir string, configPath string) (*HttpConfig, error)

ReadHttpConfig 读取配置文件

type HttpMethod

type HttpMethod string

Http方法

const (
	HttpMethodGet     HttpMethod = "Get"     // Get方法
	HttpMethodPost    HttpMethod = "Post"    // Post方法
	HttpMethodPut     HttpMethod = "Put"     // Put方法
	HttpMethodDelete  HttpMethod = "Delete"  // Delete方法
	HttpMethodOptions HttpMethod = "Options" // Options方法
	HttpMethodHead    HttpMethod = "Head"    // Head方法
	HttpMethodTrace   HttpMethod = "Trace"   // Trace方法
	HttpMethodConnect HttpMethod = "Connect" // Connect方法
)

type HttpProcessor

type HttpProcessor struct {
	Root                  router.Router                 //根路由
	Config                *HttpConfig                   //http配置
	Logger                log.Logger                    //日志记录
	SessionContainer      session.SessionContainer      //Session容器
	CSRFContainer         session.SessionContainer      //Csrf容器
	Finders               map[string]ContextValueFinder //Context单类型值查找器
	MutiTypeFinders       []ContextValueFinder          //Context多类型值查找器
	DefaultValueContainer meta.ValueContainer           //web执行器默认使用的值容器
	Templates             *template.ViewTemplates       //视图模板信息
	Event                 HttpProcessorEvent            //处理器事件
}

HttpProcessor 用于协调http连接器和路由,并管理Http应用的所有内容

func NewHttpProcessor

func NewHttpProcessor(root router.Router, config *HttpConfig) (*HttpProcessor, error)

NewHttpProcessor 创建Http处理器

func (*HttpProcessor) Dispatch

func (this *HttpProcessor) Dispatch(segments []string, data interface{})

Dispatch 将接收到的请求进行分发

segments:用于进行分发的路径段信息
data:连接携带的数据

func (*HttpProcessor) RegisterFinder

func (this *HttpProcessor) RegisterFinder(t reflect.Type, finder ContextValueFinder)

RegisterFinder 注册单一类型的值查找器

func (*HttpProcessor) RegisterMutiTypeFinder

func (this *HttpProcessor) RegisterMutiTypeFinder(finder ContextValueFinder)

RegisterMutiTypeFinder 注册多类型的值查找器

func (*HttpProcessor) ResolveSession

func (this *HttpProcessor) ResolveSession(context *Context)

ResolveSession 处理会话相关内容

func (*HttpProcessor) SetDefaultValueContainer

func (this *HttpProcessor) SetDefaultValueContainer(container meta.ValueContainer)

SetDefaultValueContainer 设置默认的值容器

type HttpProcessorEvent

type HttpProcessorEvent interface {
	// Request 每次出现一个新请求的时候触发,返回值决定是否处理该请求
	Request(processor *HttpProcessor, context *Context) bool
	// RequestFinish 每次请求正确执行完成的时候触发
	RequestFinish(processor *HttpProcessor, context *Context, result []interface{})
	// Error 请求过程中出现任何错误时触发,出现错误时context需要检查是否为nil后才能使用
	Error(processor *HttpProcessor, context *Context, err error)
}

HttpProcessor事件接口

type HttpResult

type HttpResult interface {
	// Code 返回状态码
	Code() StatusCode
	// Message 返回状态信息
	Message() string
	// 实现Result接口
	Result
}

用于http的结果

type JsonResult

type JsonResult struct {
	CommonHttpResult
	Obj interface{} //需要返回的对象
}

Json结果

func (*JsonResult) WriteTo

func (this *JsonResult) WriteTo(writer io.Writer) error

WriteTo 将Result的内容写入writer

type MutiTypeCVF

type MutiTypeCVF struct {
}

多类型值查找器

func (*MutiTypeCVF) Contains

func (this *MutiTypeCVF) Contains(context *Context, name string, t reflect.Type) bool

Contains 查找context是否包含指定的值

func (*MutiTypeCVF) String

func (this *MutiTypeCVF) String(context *Context, name string, t reflect.Type) []string

String 查找context中指定的字符串值

func (*MutiTypeCVF) Value

func (this *MutiTypeCVF) Value(context *Context, name string, t reflect.Type) interface{}

Value 生成指定类型的值

type NotFoundResult

type NotFoundResult struct {
	CommonHttpResult
	Context *Context //请求上下文
}

404结果

func (*NotFoundResult) WriteTo

func (this *NotFoundResult) WriteTo(writer io.Writer) error

WriteTo 将Result的内容写入writer

type OptionsResult

type OptionsResult Result

可用于Options方法的返回结果

type ParamTypeFunc

type ParamTypeFunc func(context *Context, name string, t reflect.Type) interface{}

参数类型方法

type PartialViewResult

type PartialViewResult struct {
	CommonHttpResult
	Templates *template.ViewTemplates
	Path      string
	Data      interface{}
}

部分视图结果

func (*PartialViewResult) WriteTo

func (this *PartialViewResult) WriteTo(writer io.Writer) error

WriteTo 将Result的内容写入writer

type PostResult

type PostResult Result

可用于Post方法的返回结果

type PutResult

type PutResult Result

可用于Put方法的返回结果

type RedirectResult

type RedirectResult struct {
	CommonHttpResult
	Context *Context //请求上下文
	Url     string   //重定向地址
}

重定向结果

func (*RedirectResult) WriteTo

func (this *RedirectResult) WriteTo(writer io.Writer) error

WriteTo 将Result的内容写入writer

type Result

type Result interface {
	// WriteTo 将Result的内容写入writer
	WriteTo(writer io.Writer) error
}

可用于默认http方法(默认为Post)的返回结果

type RouterMethod

type RouterMethod struct {
	MethodName string     //控制器方法名称
	RouterName string     //路由名称
	HttpMethod HttpMethod //Http方法名称
}

路由方法信息

type SimpleExecutor

type SimpleExecutor struct {
	router.BaseRouterExecutor
	// contains filtered or unexported fields
}

简单执行器

func NewSimpleExecutor

func NewSimpleExecutor(f SimpleExecutorFunc) *SimpleExecutor

NewSimpleExecutor 创建简单执行器

func (*SimpleExecutor) Execute

func (this *SimpleExecutor) Execute() (interface{}, error)

Excute 执行

type SimpleExecutorFunc

type SimpleExecutorFunc func(r *Context) (interface{}, error)

简单执行器方法

type StaticExecutor

type StaticExecutor struct {
	router.BaseRouterExecutor
	// contains filtered or unexported fields
}

静态文件执行器

func NewStaticExecutor

func NewStaticExecutor(path string) *StaticExecutor

NewStaticExecutor 创建静态文件执行器

func (*StaticExecutor) Execute

func (this *StaticExecutor) Execute() (interface{}, error)

Excute 执行

type StatusCode

type StatusCode int

服务端状态码

const (
	//Http状态码
	StatusCodeOK               StatusCode = 200 //http正常返回结果
	StatusCodeMovedPermanently StatusCode = 301 //http永久转移
	StatusCodeMovedTemporarily StatusCode = 302 //http临时转移
	StatusCodeNotFound         StatusCode = 404 //http页面未找到

	//框架内部状态码(功能)
	StatusCodeRedispatch StatusCode = iota + 10000 //路由重新分发状态,接收该状态后需要将当前请求重新分发
	//框架内部状态码(错误)
	StatusCodeParamNotCorrect //http参数不正确
	StatusCodePageNotFound    //路由未找到

	//用户自定义状态码
	StatusCodeUserDefined StatusCode = 1000000 //用户自定义状态码起始码
)

type TemplateCSRF

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

模板CSRF信息

func NewTemplateCSRF

func NewTemplateCSRF(sess session.Session, fieldName string) *TemplateCSRF

NewTemplateCSRF 创建一个模板CSRF

func (*TemplateCSRF) Field

func (this *TemplateCSRF) Field() template.HTML

Field 生成一个包含CSRF的隐藏域

func (*TemplateCSRF) Token

func (this *TemplateCSRF) Token() template.HTML

Token 生成一个CSRF认证字符串

type TemplateSession

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

模板会话信息

func NewTemplateSession

func NewTemplateSession(sess session.Session) *TemplateSession

NewTemplateSession 创建一个模板Session

func (*TemplateSession) Bool

func (this *TemplateSession) Bool(key string) bool

Bool 获取bool值

func (*TemplateSession) Contains

func (this *TemplateSession) Contains(key string) bool

Contains 确认Session中是否包含该key

func (*TemplateSession) Float

func (this *TemplateSession) Float(key string) float64

Float 获取浮点值

func (*TemplateSession) Int

func (this *TemplateSession) Int(key string) int

Int 获取整数值

func (*TemplateSession) String

func (this *TemplateSession) String(key string) string

String 获取字符串

func (*TemplateSession) Value

func (this *TemplateSession) Value(key string) interface{}

Value 获取值

type TimeCVF

type TimeCVF struct {
	ValueCVF
}

time.Time

func (*TimeCVF) Value

func (this *TimeCVF) Value(context *Context, name string, t reflect.Type) interface{}

Value 生成指定类型的值

type TraceResult

type TraceResult Result

可用于Trace方法的返回结果

type UserDefinedResult

type UserDefinedResult struct {
	Status StatusCode //状态码
	Msg    string     //消息
}

自定义返回结果

func NewUserDefinedResult

func NewUserDefinedResult(code StatusCode, msg string) *UserDefinedResult

NewUserDefinedResult 创建自定义的返回结果

func (*UserDefinedResult) Code

func (this *UserDefinedResult) Code() StatusCode

Code 返回状态码

func (*UserDefinedResult) Message

func (this *UserDefinedResult) Message() string

Message 返回状态信息

func (*UserDefinedResult) WriteTo

func (this *UserDefinedResult) WriteTo(writer io.Writer) error

WriteTo 将Result的内容写入writer

type ValueCVF

type ValueCVF struct {
}

ValueCVF 单值查找器

func (*ValueCVF) Contains

func (this *ValueCVF) Contains(context *Context, name string, t reflect.Type) bool

Contains 查找context是否包含指定的值

func (*ValueCVF) String

func (this *ValueCVF) String(context *Context, name string, t reflect.Type) []string

String 查找context中指定的字符串值

type ViewData

type ViewData map[string]interface{}

视图数据类型

type ViewResult

type ViewResult struct {
	CommonHttpResult
	Templates *template.ViewTemplates
	Path      string
	Data      interface{}
}

视图结果

func (*ViewResult) WriteTo

func (this *ViewResult) WriteTo(writer io.Writer) error

WriteTo 将Result的内容写入writer

type WebApp

type WebApp struct {
	Conn      connector.Connector //链接
	Processor *HttpProcessor      //处理器
}

Web应用

func NewWebApp

func NewWebApp(appDir string, configFile string, root router.Router) (*WebApp, error)

NewWebApp 创建WebApp

appDir:配置文件路径
configFile:配置文件名称
root:Web使用的根路由,根路由必须是匹配空字符串的路由

func (*WebApp) Init

func (this *WebApp) Init() error

Init 应用初始化接口

func (*WebApp) Name

func (this *WebApp) Name() string

Name 应用名称

func (*WebApp) Run

func (this *WebApp) Run() error

Run 应用运行接口

type XmlResult

type XmlResult struct {
	CommonHttpResult
	Obj interface{} //需要返回的对象
}

Xml结果

func (*XmlResult) WriteTo

func (this *XmlResult) WriteTo(writer io.Writer) error

WriteTo 将Result的内容写入writer

Jump to

Keyboard shortcuts

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