context

package
v0.8.0 Latest Latest
Warning

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

Go to latest
Published: Jul 27, 2023 License: MIT Imports: 19 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

View Source
var SessionEnable = false

SessionEnable 开启Session

View Source
var SessionTimeout = 1200

SessionTimeout 自动过期时间,单位:秒

Functions

func ClearSession added in v0.8.0

func ClearSession()

ClearSession 移除过期的Session对象

func NewRouteRegexp added in v0.8.0

func NewRouteRegexp(tpl string, typ RegexpType, options RouteRegexpOptions) *routeRegexp

NewRouteRegexp 构建支持正则的路由

Types

type HttpContext

type HttpContext struct {
	Request          *HttpRequest
	Response         *HttpResponse
	Header           collections.ReadonlyDictionary[string, string]
	Cookie           *HttpCookies
	Session          *HttpSession
	Route            *HttpRoute
	URI              *HttpURL
	Method           string
	ContentLength    int64
	Close            bool
	TransferEncoding []string
	ContentType      string
	Exception        any
}

func NewHttpContext

func NewHttpContext(httpRoute *HttpRoute, w http.ResponseWriter, r *http.Request) *HttpContext

NewHttpContext 初始化上下文

func (*HttpContext) IsActionResult

func (httpContext *HttpContext) IsActionResult() bool

IsActionResult 是否为ActionResult类型

func (*HttpContext) ParseParams added in v0.8.0

func (httpContext *HttpContext) ParseParams() []reflect.Value

ParseParams 根据method映射入参

type HttpCookies added in v0.8.0

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

func (*HttpCookies) Get added in v0.8.0

func (r *HttpCookies) Get(name string) *http.Cookie

Get 获取Cookie

func (*HttpCookies) GetValue added in v0.8.0

func (r *HttpCookies) GetValue(name string) string

GetValue 获取Cookie

func (*HttpCookies) Remove added in v0.8.0

func (r *HttpCookies) Remove(name string)

Remove 删除Cookie

func (*HttpCookies) SetCookie added in v0.8.0

func (r *HttpCookies) SetCookie(cookie *http.Cookie)

SetCookie 设置Cookie

func (*HttpCookies) SetSuretyValue added in v0.8.0

func (r *HttpCookies) SetSuretyValue(name string, val string)

SetSuretyValue 设置Cookie安全值,将不允许脚本读取该值(HttpOnly)

func (*HttpCookies) SetValue added in v0.8.0

func (r *HttpCookies) SetValue(name string, val string)

SetValue 设置Cookie

type HttpRequest

type HttpRequest struct {
	Body       io.ReadCloser
	BodyString string
	BodyBytes  []byte
	Form       map[string]any
	Query      map[string]any

	R *http.Request
}

type HttpResponse

type HttpResponse struct {
	Body       []reflect.Value
	BodyString string
	BodyBytes  []byte
	W          http.ResponseWriter
	StatusCode int
}

func (HttpResponse) AddHeader

func (receiver HttpResponse) AddHeader(key, value string)

AddHeader 添加头部

func (HttpResponse) DelHeader

func (receiver HttpResponse) DelHeader(key string)

DelHeader 删除头部

func (HttpResponse) SetHeader

func (receiver HttpResponse) SetHeader(key, value string)

SetHeader 覆盖头部

func (HttpResponse) Write

func (receiver HttpResponse) Write(content []byte) (int, error)

Write 将响应内容写入http流

func (HttpResponse) WriteCode

func (receiver HttpResponse) WriteCode(statusCode int)

WriteCode 将响应状态写入http流

type HttpRoute

type HttpRoute struct {
	RouteUrl            string                         // 路由地址
	Controller          reflect.Type                   // 控制器类型
	ControllerName      string                         // 控制器名称
	Action              any                            // action类型
	ActionName          string                         // action名称
	RequestParamType    collections.List[reflect.Type] // 入参
	ResponseBodyType    collections.List[reflect.Type] // 出参
	Method              collections.List[string]       // method
	ParamNames          collections.List[string]       // 入参变量名称(显示指定)
	RequestParamIsModel bool                           // 是否为DTO结构
	ResponseBodyIsModel bool                           // 是否为DTO结构
	AutoBindHeaderName  string                         // 自动绑定header的字段名称
	IsImplActionFilter  bool                           // 是否实现了IActionFilter
	IsGoBasicType       bool                           // 返回值只有一个时,是否为基础类型
	HttpMiddleware      IMiddleware                    // 中间件入口(每个路由的管道都不一样)
	HandleMiddleware    IMiddleware                    // handle中间件
	RouteRegexp         *routeRegexp                   // 正则路由
	Handler             http.Handler                   // api处理函数
}

HttpRoute 路由表

func (*HttpRoute) FormToParams added in v0.8.0

func (receiver *HttpRoute) FormToParams(mapVal map[string]any) []reflect.Value

FormToParams 将map转成入参值

func (*HttpRoute) JsonToParams added in v0.8.0

func (receiver *HttpRoute) JsonToParams(request *HttpRequest) []reflect.Value

JsonToParams json入参转成param

type HttpSession added in v0.8.0

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

func InitSession added in v0.8.0

func InitSession(w http.ResponseWriter, r *http.Request) *HttpSession

InitSession 初始化httpSession

func (*HttpSession) Clear added in v0.8.0

func (r *HttpSession) Clear()

Clear 清空Session

func (*HttpSession) GetValue added in v0.8.0

func (r *HttpSession) GetValue(name string) any

GetValue 获取Session

func (*HttpSession) Remove added in v0.8.0

func (r *HttpSession) Remove(name string)

Remove 删除Session

func (*HttpSession) SetValue added in v0.8.0

func (r *HttpSession) SetValue(name string, val any)

SetValue 设置Session

type HttpURL

type HttpURL struct {
	Url         string // 请求地址
	Path        string // 请求地址
	RemoteAddr  string // 客户端IP端口
	Host        string
	Proto       string // http协议
	RequestURI  string
	QueryString string
	Query       map[string]any

	R *http.Request
}

type IMiddleware added in v0.3.0

type IMiddleware interface {
	Invoke(httpContext *HttpContext)
}

IMiddleware 中间件

type RegexpType added in v0.8.0

type RegexpType int
const (
	RegexpTypePath RegexpType = iota
	RegexpTypeHost
	RegexpTypePrefix
	RegexpTypeQuery
)

type RouteRegexpOptions added in v0.8.0

type RouteRegexpOptions struct {
	StrictSlash    bool
	UseEncodedPath bool
}

Jump to

Keyboard shortcuts

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