Documentation
¶
Index ¶
- Constants
- Variables
- func GetSession(req *Request) httpsession.Session
- func NewEndPoint(name string, task HandlerTask, acceptances []Acceptance) *_EndPoint
- func NewGroup(name string, acceptances []Acceptance) *_RouteGroup
- func ParseRange(rangeHeader string, contentSize int64) (int64, int64, bool)
- func RegisterSessionProvider(provider httpsession.SessionProvider)
- func SessionProvider() httpsession.SessionProvider
- type Acceptance
- type AutoRangeSupporter
- type Channel
- type DefaultAcceptanceInterrupt
- type DefaultHTTPHandlerTask
- func (h *DefaultHTTPHandlerTask) After(req *Request, resp *Response, params map[string]any) ErrorResponse
- func (h *DefaultHTTPHandlerTask) Before(req *Request, resp *Response, params map[string]any) ErrorResponse
- func (h *DefaultHTTPHandlerTask) CORSHelper(req *Request, resp *Response, params map[string]any)
- func (h *DefaultHTTPHandlerTask) Connect(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- func (h *DefaultHTTPHandlerTask) Create(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- func (h *DefaultHTTPHandlerTask) Delete(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- func (h *DefaultHTTPHandlerTask) EnableAutoRangeSupport() bool
- func (h *DefaultHTTPHandlerTask) ErrorCaught(req *Request, resp *Response, params map[string]any, err ErrorResponse) error
- func (h *DefaultHTTPHandlerTask) Get(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- func (h *DefaultHTTPHandlerTask) Index(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- func (h *DefaultHTTPHandlerTask) Options(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- func (h *DefaultHTTPHandlerTask) Patch(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- func (h *DefaultHTTPHandlerTask) Post(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- func (h *DefaultHTTPHandlerTask) PreCheck(req *Request, resp *Response, params map[string]any) ErrorResponse
- func (h *DefaultHTTPHandlerTask) Put(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- func (h *DefaultHTTPHandlerTask) SSEMode(ctx channel.HandlerContext, req *Request, resp *Response, ...) SSEOperation
- func (h *DefaultHTTPHandlerTask) SkipPreCheckForOptions() bool
- func (h *DefaultHTTPHandlerTask) ThrowErrorResponse(err ErrorResponse)
- func (h *DefaultHTTPHandlerTask) Trace(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- type DefaultHandlerTask
- func (h *DefaultHandlerTask) GetID(name string, params map[string]any) string
- func (h *DefaultHandlerTask) GetNodeName(params map[string]any) string
- func (h *DefaultHandlerTask) IsIndex(params map[string]any) bool
- func (h *DefaultHandlerTask) LogExtend(key string, value any, params map[string]any)
- func (h *DefaultHandlerTask) Register()
- type DefaultRoute
- func (r *DefaultRoute) AddEndPoint(point *_EndPoint) *DefaultRoute
- func (r *DefaultRoute) AddGroup(group *_RouteGroup) *DefaultRoute
- func (r *DefaultRoute) AddRecursivePoint(point *_EndPoint) *DefaultRoute
- func (r *DefaultRoute) RouteNode(path string) (node RouteNode, nodeParams map[string]any, isLast bool)
- func (r *DefaultRoute) SetRoot(point *_EndPoint) *DefaultRoute
- type DefaultSSEOperation
- func (h *DefaultSSEOperation) WriteHeader(ctx channel.HandlerContext, header http.Header, params map[string]any) channel.Future
- func (h *DefaultSSEOperation) WriteMessage(ctx channel.HandlerContext, message SSEMessage, params map[string]any) channel.Future
- func (h *DefaultSSEOperation) WriteMessages(ctx channel.HandlerContext, messages []SSEMessage, params map[string]any) channel.Future
- type DispatchAcceptance
- func (a *DispatchAcceptance) Do(ctx channel.HandlerContext, req *Request, resp *Response, ...) error
- func (a *DispatchAcceptance) GetID(name string, params map[string]any) string
- func (a *DispatchAcceptance) GetNodeName(params map[string]any) string
- func (a *DispatchAcceptance) IsIndex(params map[string]any) string
- func (a *DispatchAcceptance) LogExtend(key string, value any, params map[string]any)
- func (a *DispatchAcceptance) SkipMethodOptions() bool
- type DispatchHandler
- type ErrorResponse
- type ErrorResponseImpl
- type GZipHandler
- type HandlerTask
- type HttpHandlerTask
- type HttpTask
- type LanguageValue
- type LogHandler
- type LogStruct
- type MockHTTPServerChannel
- type MockHttpHandlerTask
- func (m *MockHttpHandlerTask) After(req *Request, resp *Response, params map[string]any) ErrorResponse
- func (m *MockHttpHandlerTask) Before(req *Request, resp *Response, params map[string]any) ErrorResponse
- func (m *MockHttpHandlerTask) CORSHelper(req *Request, resp *Response, params map[string]any)
- func (m *MockHttpHandlerTask) Connect(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- func (m *MockHttpHandlerTask) Create(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- func (m *MockHttpHandlerTask) Delete(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- func (m *MockHttpHandlerTask) ErrorCaught(req *Request, resp *Response, params map[string]any, err ErrorResponse) error
- func (m *MockHttpHandlerTask) Get(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- func (m *MockHttpHandlerTask) GetID(name string, params map[string]any) string
- func (m *MockHttpHandlerTask) GetNodeName(params map[string]any) string
- func (m *MockHttpHandlerTask) Index(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- func (m *MockHttpHandlerTask) Options(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- func (m *MockHttpHandlerTask) Patch(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- func (m *MockHttpHandlerTask) Post(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- func (m *MockHttpHandlerTask) PreCheck(req *Request, resp *Response, params map[string]any) ErrorResponse
- func (m *MockHttpHandlerTask) Put(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- func (m *MockHttpHandlerTask) Register()
- func (m *MockHttpHandlerTask) Trace(ctx channel.HandlerContext, req *Request, resp *Response, ...) ErrorResponse
- type MockRequest
- type MockResponse
- func (m *MockResponse) GetHeader(key string) string
- func (m *MockResponse) Header() http.Header
- func (m *MockResponse) SetHeader(key, value string)
- func (m *MockResponse) SetStatus(code int)
- func (m *MockResponse) Status() int
- func (m *MockResponse) Write(data []byte) (int, error)
- func (m *MockResponse) WriteHeader(statusCode int)
- func (m *MockResponse) WriteString(data string) (int, error)
- type MockRoute
- type MockRouteNode
- func (m *MockRouteNode) Acceptances() []Acceptance
- func (m *MockRouteNode) AggregatedAcceptances() []Acceptance
- func (m *MockRouteNode) HandlerTask() HandlerTask
- func (m *MockRouteNode) Name() string
- func (m *MockRouteNode) Parent() RouteNode
- func (m *MockRouteNode) Resources() map[string]RouteNode
- func (m *MockRouteNode) RouteType() RouteType
- type MockSSEOperation
- func (m *MockSSEOperation) WriteHeader(ctx channel.HandlerContext, header http.Header, params map[string]any) channel.Future
- func (m *MockSSEOperation) WriteMessage(ctx channel.HandlerContext, message SSEMessage, params map[string]any) channel.Future
- func (m *MockSSEOperation) WriteMessages(ctx channel.HandlerContext, messages []SSEMessage, params map[string]any) channel.Future
- type ObjectLogStruct
- type Pack
- type PreCheckSkipOptions
- type QualityValue
- type ReadRequestLogStruct
- type Request
- func (r *Request) Accept() []QualityValue
- func (r *Request) AcceptCharset() []QualityValue
- func (r *Request) AcceptEncoding() []QualityValue
- func (r *Request) AcceptLanguage() []LanguageValue
- func (r *Request) AddCookie(c *ghttp.Cookie)
- func (r *Request) Body() buf.ByteBuf
- func (r *Request) Channel() channel.Channel
- func (r *Request) ContentLength() int64
- func (r *Request) Cookie(name string) (*ghttp.Cookie, error)
- func (r *Request) Cookies() []*ghttp.Cookie
- func (r *Request) CreatedAt() *time.Time
- func (r *Request) FormFile(key string) (multipart.File, *multipart.FileHeader, error)
- func (r *Request) FormValue(key string) string
- func (r *Request) Header() ghttp.Header
- func (r *Request) Host() string
- func (r *Request) Method() string
- func (r *Request) Origin() string
- func (r *Request) PreferLang() *language.Tag
- func (r *Request) Proto() string
- func (r *Request) Referer() string
- func (r *Request) RemoteAddr() (ip net.IP, port string)
- func (r *Request) RemoteAddrs() []string
- func (r *Request) RemoteIP() (ip net.IP)
- func (r *Request) RenewSession()
- func (r *Request) Request() *ghttp.Request
- func (r *Request) RequestURI() string
- func (r *Request) Session() httpsession.Session
- func (r *Request) TE() []QualityValue
- func (r *Request) TrackID() string
- func (r *Request) Url() *url.URL
- func (r *Request) UserAgent() string
- type RequestLogStruct
- type Response
- func (r *Response) AddHeader(name string, value string) *Response
- func (r *Response) Body() buf.ByteBuf
- func (r *Response) Cookie(name string) *ghttp.Cookie
- func (r *Response) Cookies() map[string][]ghttp.Cookie
- func (r *Response) DelHeader(name string) *Response
- func (r *Response) DoneFuture() channel.Future
- func (r *Response) GetHeader(name string) string
- func (r *Response) Header() ghttp.Header
- func (r *Response) JsonResponse(obj any)
- func (r *Response) Redirect(redirectUrl string)
- func (r *Response) Request() *Request
- func (r *Response) ResponseError(er ErrorResponse)
- func (r *Response) SetBody(buf buf.ByteBuf)
- func (r *Response) SetContentType(ct string)
- func (r *Response) SetCookie(cookie *ghttp.Cookie) *Response
- func (r *Response) SetHeader(name string, value string) *Response
- func (r *Response) SetStatusCode(statusCode int) *Response
- func (r *Response) StatusCode() int
- func (r *Response) TextResponse(buf buf.ByteBuf)
- type ResponseLogStruct
- type ResponseWriter
- type ReturnCatch
- type Route
- type RouteNode
- type RouteType
- type SSEMessage
- type SSEMessages
- type SSEOperation
- type ServerChannel
- type SimpleRoute
- func (r *SimpleRoute) FindNode(path string) RouteNode
- func (r *SimpleRoute) RouteNode(path string) (node RouteNode, parameters map[string]any, isLast bool)
- func (r *SimpleRoute) SetEndpoint(path string, handler HandlerTask, acceptances ...Acceptance) *SimpleRoute
- func (r *SimpleRoute) SetGroup(path string, acceptances ...Acceptance) *SimpleRoute
- func (r *SimpleRoute) SetRoot(handler HandlerTask, acceptances ...Acceptance) *SimpleRoute
- func (r *SimpleRoute) String() string
- type StaticFilesHandlerTask
- type TaskHelper
- func (h *TaskHelper) GetID(name string, params map[string]any) string
- func (h *TaskHelper) GetNode(params map[string]any) RouteNode
- func (h *TaskHelper) GetNodeName(params map[string]any) string
- func (h *TaskHelper) IsIndex(params map[string]any) bool
- func (h *TaskHelper) LogExtend(key string, value any, params map[string]any)
Constants ¶
const ( GET string = "GET" POST string = "POST" PUT string = "PUT" DELETE string = "DELETE" OPTIONS string = "OPTIONS" PATCH string = "PATCH" TRACE string = "TRACE" CONNECT string = "CONNECT" )
const ( ProtoHTTP1_1 string = "HTTP/1.1" ProtoHTTP2 string = "HTTP/2" ProtoHTTP3 string = "HTTP/3" )
const ConnChCtx = "conn_ch"
const ConnCtx = "conn"
const LogHandlerDefaultMaxBodySize = 204800
const ParamMaxBodyBytes = channel.ParamKey("max_body_bytes")
var ParamMaxMultiPartMemory channel.ParamKey = "max_multi_part_memory"
Variables ¶
var AcceptanceInterrupt = &DefaultAcceptanceInterrupt{}
var DefaultSessionType = memory.SessionTypeMemory
var NotImplemented = erresponse.NotImplemented
var ParamAcceptWaitCount channel.ParamKey = "accept_wait_count"
var ParamIdleTimeout channel.ParamKey = "idle_timeout"
var ParamMaxHeaderBytes channel.ParamKey = "max_header_bytes"
var ParamReadHeaderTimeout channel.ParamKey = "read_header_timeout"
var ParamReadTimeout channel.ParamKey = "read_timeout"
var ParamWriteTimeout channel.ParamKey = "write_timeout"
var SessionDomain = ""
var SessionExpireTime = 86400
var SessionHttpOnly = false
var SessionKey = "DEFAULT"
var SessionSecure = false
Functions ¶
func GetSession ¶
func GetSession(req *Request) httpsession.Session
func NewEndPoint ¶
func NewEndPoint(name string, task HandlerTask, acceptances []Acceptance) *_EndPoint
func NewGroup ¶
func NewGroup(name string, acceptances []Acceptance) *_RouteGroup
func ParseRange ¶ added in v1.11.2
ParseRange parses HTTP Range header and returns start, end, valid
func RegisterSessionProvider ¶ added in v1.6.1
func RegisterSessionProvider(provider httpsession.SessionProvider)
func SessionProvider ¶ added in v1.6.2
func SessionProvider() httpsession.SessionProvider
Types ¶
type Acceptance ¶
type AutoRangeSupporter ¶ added in v1.11.2
type AutoRangeSupporter interface {
EnableAutoRangeSupport() bool
}
AutoRangeSupporter enables automatic HTTP Range request handling by the dispatcher
type Channel ¶
type Channel struct {
channel.DefaultNetChannel
}
func (*Channel) UnsafeIsAutoRead ¶
func (*Channel) UnsafeRead ¶
func (*Channel) UnsafeWrite ¶
type DefaultAcceptanceInterrupt ¶
type DefaultAcceptanceInterrupt struct {
}
func (DefaultAcceptanceInterrupt) Error ¶
func (DefaultAcceptanceInterrupt) Error() string
type DefaultHTTPHandlerTask ¶
type DefaultHTTPHandlerTask struct {
DefaultHandlerTask
}
func (*DefaultHTTPHandlerTask) After ¶
func (h *DefaultHTTPHandlerTask) After(req *Request, resp *Response, params map[string]any) ErrorResponse
func (*DefaultHTTPHandlerTask) Before ¶
func (h *DefaultHTTPHandlerTask) Before(req *Request, resp *Response, params map[string]any) ErrorResponse
func (*DefaultHTTPHandlerTask) CORSHelper ¶
func (h *DefaultHTTPHandlerTask) CORSHelper(req *Request, resp *Response, params map[string]any)
func (*DefaultHTTPHandlerTask) Connect ¶
func (h *DefaultHTTPHandlerTask) Connect(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
func (*DefaultHTTPHandlerTask) Create ¶
func (h *DefaultHTTPHandlerTask) Create(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
func (*DefaultHTTPHandlerTask) Delete ¶
func (h *DefaultHTTPHandlerTask) Delete(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
func (*DefaultHTTPHandlerTask) EnableAutoRangeSupport ¶ added in v1.11.2
func (h *DefaultHTTPHandlerTask) EnableAutoRangeSupport() bool
func (*DefaultHTTPHandlerTask) ErrorCaught ¶
func (h *DefaultHTTPHandlerTask) ErrorCaught(req *Request, resp *Response, params map[string]any, err ErrorResponse) error
func (*DefaultHTTPHandlerTask) Get ¶
func (h *DefaultHTTPHandlerTask) Get(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
func (*DefaultHTTPHandlerTask) Index ¶
func (h *DefaultHTTPHandlerTask) Index(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
func (*DefaultHTTPHandlerTask) Options ¶
func (h *DefaultHTTPHandlerTask) Options(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
func (*DefaultHTTPHandlerTask) Patch ¶
func (h *DefaultHTTPHandlerTask) Patch(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
func (*DefaultHTTPHandlerTask) Post ¶
func (h *DefaultHTTPHandlerTask) Post(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
func (*DefaultHTTPHandlerTask) PreCheck ¶
func (h *DefaultHTTPHandlerTask) PreCheck(req *Request, resp *Response, params map[string]any) ErrorResponse
func (*DefaultHTTPHandlerTask) Put ¶
func (h *DefaultHTTPHandlerTask) Put(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
func (*DefaultHTTPHandlerTask) SSEMode ¶
func (h *DefaultHTTPHandlerTask) SSEMode(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) SSEOperation
func (*DefaultHTTPHandlerTask) SkipPreCheckForOptions ¶ added in v1.11.3
func (h *DefaultHTTPHandlerTask) SkipPreCheckForOptions() bool
func (*DefaultHTTPHandlerTask) ThrowErrorResponse ¶
func (h *DefaultHTTPHandlerTask) ThrowErrorResponse(err ErrorResponse)
func (*DefaultHTTPHandlerTask) Trace ¶
func (h *DefaultHTTPHandlerTask) Trace(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
type DefaultHandlerTask ¶
type DefaultHandlerTask struct {
}
func NewDefaultHandlerTask ¶
func NewDefaultHandlerTask() *DefaultHandlerTask
func (*DefaultHandlerTask) GetID ¶
func (h *DefaultHandlerTask) GetID(name string, params map[string]any) string
func (*DefaultHandlerTask) GetNodeName ¶
func (h *DefaultHandlerTask) GetNodeName(params map[string]any) string
func (*DefaultHandlerTask) IsIndex ¶
func (h *DefaultHandlerTask) IsIndex(params map[string]any) bool
func (*DefaultHandlerTask) LogExtend ¶
func (h *DefaultHandlerTask) LogExtend(key string, value any, params map[string]any)
func (*DefaultHandlerTask) Register ¶ added in v1.6.4
func (h *DefaultHandlerTask) Register()
type DefaultRoute ¶
type DefaultRoute struct {
// contains filtered or unexported fields
}
func NewRoute ¶
func NewRoute() *DefaultRoute
func (*DefaultRoute) AddEndPoint ¶
func (r *DefaultRoute) AddEndPoint(point *_EndPoint) *DefaultRoute
func (*DefaultRoute) AddGroup ¶
func (r *DefaultRoute) AddGroup(group *_RouteGroup) *DefaultRoute
func (*DefaultRoute) AddRecursivePoint ¶
func (r *DefaultRoute) AddRecursivePoint(point *_EndPoint) *DefaultRoute
func (*DefaultRoute) SetRoot ¶
func (r *DefaultRoute) SetRoot(point *_EndPoint) *DefaultRoute
type DefaultSSEOperation ¶
type DefaultSSEOperation struct {
}
func (*DefaultSSEOperation) WriteHeader ¶
func (h *DefaultSSEOperation) WriteHeader(ctx channel.HandlerContext, header http.Header, params map[string]any) channel.Future
func (*DefaultSSEOperation) WriteMessage ¶
func (h *DefaultSSEOperation) WriteMessage(ctx channel.HandlerContext, message SSEMessage, params map[string]any) channel.Future
func (*DefaultSSEOperation) WriteMessages ¶
func (h *DefaultSSEOperation) WriteMessages(ctx channel.HandlerContext, messages []SSEMessage, params map[string]any) channel.Future
type DispatchAcceptance ¶
type DispatchAcceptance struct {
}
func (*DispatchAcceptance) Do ¶
func (a *DispatchAcceptance) Do(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) error
func (*DispatchAcceptance) GetID ¶
func (a *DispatchAcceptance) GetID(name string, params map[string]any) string
func (*DispatchAcceptance) GetNodeName ¶
func (a *DispatchAcceptance) GetNodeName(params map[string]any) string
func (*DispatchAcceptance) IsIndex ¶
func (a *DispatchAcceptance) IsIndex(params map[string]any) string
func (*DispatchAcceptance) LogExtend ¶
func (a *DispatchAcceptance) LogExtend(key string, value any, params map[string]any)
func (*DispatchAcceptance) SkipMethodOptions ¶
func (a *DispatchAcceptance) SkipMethodOptions() bool
SkipMethodOptions helpful for CORS xhr preflight
type DispatchHandler ¶
type DispatchHandler struct {
channel.DefaultHandler
DefaultStatusCode int
DefaultStatusResponse map[int]func(req *Request, resp *Response, params map[string]any)
// contains filtered or unexported fields
}
func NewDispatchHandler ¶
func NewDispatchHandler(route Route) *DispatchHandler
func (*DispatchHandler) ErrorCaught ¶
func (h *DispatchHandler) ErrorCaught(ctx channel.HandlerContext, err error)
func (*DispatchHandler) Read ¶
func (h *DispatchHandler) Read(ctx channel.HandlerContext, obj any)
type ErrorResponse ¶
type ErrorResponse interface {
erresponse.ErrorResponse
}
type ErrorResponseImpl ¶
type ErrorResponseImpl struct {
erresponse.ErrorResponse
Caught *kkpanic.CaughtImpl `json:"caught,omitempty"`
}
func (*ErrorResponseImpl) String ¶
func (e *ErrorResponseImpl) String() string
type GZipHandler ¶
type GZipHandler struct {
channel.DefaultHandler
CompressThreshold int
}
func (*GZipHandler) Added ¶
func (h *GZipHandler) Added(ctx channel.HandlerContext)
func (*GZipHandler) Write ¶
func (h *GZipHandler) Write(ctx channel.HandlerContext, obj any, future channel.Future)
type HandlerTask ¶
type HttpHandlerTask ¶
type HttpHandlerTask interface {
HttpTask
CORSHelper(req *Request, resp *Response, params map[string]any)
PreCheck(req *Request, resp *Response, params map[string]any) ErrorResponse
Before(req *Request, resp *Response, params map[string]any) ErrorResponse
After(req *Request, resp *Response, params map[string]any) ErrorResponse
ErrorCaught(req *Request, resp *Response, params map[string]any, err ErrorResponse) error
}
type HttpTask ¶
type HttpTask interface {
Index(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
Get(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
Create(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
Post(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
Put(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
Delete(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
Options(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
Patch(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
Trace(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
Connect(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
}
type LanguageValue ¶
type LogHandler ¶
type LogHandler struct {
channel.DefaultHandler
MaxBodySize int
FilterFunc func(req *Request, resp *Response, params map[string]any) bool
// contains filtered or unexported fields
}
func NewLogHandler ¶
func NewLogHandler(printBody bool) *LogHandler
func (*LogHandler) Read ¶
func (h *LogHandler) Read(ctx channel.HandlerContext, obj any)
func (*LogHandler) Write ¶
func (h *LogHandler) Write(ctx channel.HandlerContext, obj any, future channel.Future)
type LogStruct ¶
type LogStruct struct {
ChannelID string `json:"cid,omitempty"`
TrackID string `json:"tid,omitempty"`
Method string `json:"method,omitempty"`
URI string `json:"uri,omitempty"`
StatusCode int `json:"status_code,omitempty"`
RemoteAddr string `json:"remote_addr,omitempty"`
RemoteAddrs string `json:"remote_addrs,omitempty"`
Request *RequestLogStruct `json:"request,omitempty"`
Response *ResponseLogStruct `json:"response,omitempty"`
AcceptTime int64 `json:"accept_time,omitempty"`
HLocateTime int64 `json:"h_locate_time,omitempty"`
HAcceptanceTime int64 `json:"h_acceptance_time,omitempty"`
HandlerTime int64 `json:"handler_time,omitempty"`
HErrorTime int64 `json:"h_error_time,omitempty"`
CompressTime int64 `json:"compress_time,omitempty"`
ProcessTime int64 `json:"process_time,omitempty"`
Extend any `json:"extend,omitempty"`
}
type MockHTTPServerChannel ¶ added in v1.9.0
type MockHTTPServerChannel struct {
channel.MockServerChannel
}
MockHTTPServerChannel is a mock implementation for HTTP server channels
func NewMockHTTPServerChannel ¶ added in v1.9.0
func NewMockHTTPServerChannel() *MockHTTPServerChannel
NewMockHTTPServerChannel creates a new MockHTTPServerChannel instance
func (*MockHTTPServerChannel) ServeHTTP ¶ added in v1.9.0
func (m *MockHTTPServerChannel) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP implements the http.Handler interface for testing
type MockHttpHandlerTask ¶ added in v1.9.0
MockHttpHandlerTask is a mock implementation of HttpHandlerTask interface It provides complete testify/mock integration for testing HTTP handler behaviors
func NewMockHttpHandlerTask ¶ added in v1.9.0
func NewMockHttpHandlerTask() *MockHttpHandlerTask
NewMockHttpHandlerTask creates a new MockHttpHandlerTask instance
func (*MockHttpHandlerTask) After ¶ added in v1.9.0
func (m *MockHttpHandlerTask) After(req *Request, resp *Response, params map[string]any) ErrorResponse
func (*MockHttpHandlerTask) Before ¶ added in v1.9.0
func (m *MockHttpHandlerTask) Before(req *Request, resp *Response, params map[string]any) ErrorResponse
func (*MockHttpHandlerTask) CORSHelper ¶ added in v1.9.0
func (m *MockHttpHandlerTask) CORSHelper(req *Request, resp *Response, params map[string]any)
HttpHandlerTask specific methods implementation
func (*MockHttpHandlerTask) Connect ¶ added in v1.9.0
func (m *MockHttpHandlerTask) Connect(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
func (*MockHttpHandlerTask) Create ¶ added in v1.9.0
func (m *MockHttpHandlerTask) Create(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
func (*MockHttpHandlerTask) Delete ¶ added in v1.9.0
func (m *MockHttpHandlerTask) Delete(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
func (*MockHttpHandlerTask) ErrorCaught ¶ added in v1.9.0
func (m *MockHttpHandlerTask) ErrorCaught(req *Request, resp *Response, params map[string]any, err ErrorResponse) error
func (*MockHttpHandlerTask) Get ¶ added in v1.9.0
func (m *MockHttpHandlerTask) Get(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
func (*MockHttpHandlerTask) GetID ¶ added in v1.9.0
func (m *MockHttpHandlerTask) GetID(name string, params map[string]any) string
func (*MockHttpHandlerTask) GetNodeName ¶ added in v1.9.0
func (m *MockHttpHandlerTask) GetNodeName(params map[string]any) string
func (*MockHttpHandlerTask) Index ¶ added in v1.9.0
func (m *MockHttpHandlerTask) Index(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
HttpTask methods implementation
func (*MockHttpHandlerTask) Options ¶ added in v1.9.0
func (m *MockHttpHandlerTask) Options(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
func (*MockHttpHandlerTask) Patch ¶ added in v1.9.0
func (m *MockHttpHandlerTask) Patch(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
func (*MockHttpHandlerTask) Post ¶ added in v1.9.0
func (m *MockHttpHandlerTask) Post(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
func (*MockHttpHandlerTask) PreCheck ¶ added in v1.9.0
func (m *MockHttpHandlerTask) PreCheck(req *Request, resp *Response, params map[string]any) ErrorResponse
func (*MockHttpHandlerTask) Put ¶ added in v1.9.0
func (m *MockHttpHandlerTask) Put(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
func (*MockHttpHandlerTask) Register ¶ added in v1.9.0
func (m *MockHttpHandlerTask) Register()
HandlerTask methods implementation
func (*MockHttpHandlerTask) Trace ¶ added in v1.9.0
func (m *MockHttpHandlerTask) Trace(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
type MockRequest ¶ added in v1.9.0
MockRequest is a mock implementation for HTTP requests
func NewMockRequest ¶ added in v1.9.0
func NewMockRequest() *MockRequest
NewMockRequest creates a new MockRequest instance
func (*MockRequest) Channel ¶ added in v1.9.0
func (m *MockRequest) Channel() *Channel
Channel returns the associated channel
func (*MockRequest) GetRequest ¶ added in v1.9.0
func (m *MockRequest) GetRequest() *http.Request
GetRequest returns the underlying HTTP request
type MockResponse ¶ added in v1.9.0
MockResponse is a mock implementation for HTTP responses
func NewMockResponse ¶ added in v1.9.0
func NewMockResponse() *MockResponse
NewMockResponse creates a new MockResponse instance
func (*MockResponse) GetHeader ¶ added in v1.9.0
func (m *MockResponse) GetHeader(key string) string
GetHeader gets a response header
func (*MockResponse) Header ¶ added in v1.9.0
func (m *MockResponse) Header() http.Header
Header returns response headers (implementing http.ResponseWriter)
func (*MockResponse) SetHeader ¶ added in v1.9.0
func (m *MockResponse) SetHeader(key, value string)
SetHeader sets a response header
func (*MockResponse) SetStatus ¶ added in v1.9.0
func (m *MockResponse) SetStatus(code int)
SetStatus sets the HTTP status code
func (*MockResponse) Status ¶ added in v1.9.0
func (m *MockResponse) Status() int
Status returns the HTTP status code
func (*MockResponse) Write ¶ added in v1.9.0
func (m *MockResponse) Write(data []byte) (int, error)
Write writes response body
func (*MockResponse) WriteHeader ¶ added in v1.9.0
func (m *MockResponse) WriteHeader(statusCode int)
WriteHeader writes response status code (implementing http.ResponseWriter)
func (*MockResponse) WriteString ¶ added in v1.9.0
func (m *MockResponse) WriteString(data string) (int, error)
WriteString writes string response body
type MockRoute ¶ added in v1.9.0
MockRoute is a mock implementation of Route interface It provides complete testify/mock integration for testing route behaviors
func NewMockRoute ¶ added in v1.9.0
func NewMockRoute() *MockRoute
NewMockRoute creates a new MockRoute instance
type MockRouteNode ¶ added in v1.9.0
MockRouteNode is a mock implementation of RouteNode interface It provides complete testify/mock integration for testing route node behaviors
func NewMockRouteNode ¶ added in v1.9.0
func NewMockRouteNode() *MockRouteNode
NewMockRouteNode creates a new MockRouteNode instance
func (*MockRouteNode) Acceptances ¶ added in v1.9.0
func (m *MockRouteNode) Acceptances() []Acceptance
Acceptances returns the acceptances for this node
func (*MockRouteNode) AggregatedAcceptances ¶ added in v1.9.0
func (m *MockRouteNode) AggregatedAcceptances() []Acceptance
AggregatedAcceptances returns the aggregated acceptances for this node
func (*MockRouteNode) HandlerTask ¶ added in v1.9.0
func (m *MockRouteNode) HandlerTask() HandlerTask
HandlerTask returns the handler task for this node
func (*MockRouteNode) Name ¶ added in v1.9.0
func (m *MockRouteNode) Name() string
Name returns the name of this route node
func (*MockRouteNode) Parent ¶ added in v1.9.0
func (m *MockRouteNode) Parent() RouteNode
Parent returns the parent route node
func (*MockRouteNode) Resources ¶ added in v1.9.0
func (m *MockRouteNode) Resources() map[string]RouteNode
Resources returns the child resources for this node
func (*MockRouteNode) RouteType ¶ added in v1.9.0
func (m *MockRouteNode) RouteType() RouteType
RouteType returns the type of this route node
type MockSSEOperation ¶ added in v1.9.0
MockSSEOperation is a mock implementation of SSEOperation interface It provides complete testify/mock integration for testing Server-Sent Events behaviors
func NewMockSSEOperation ¶ added in v1.9.0
func NewMockSSEOperation() *MockSSEOperation
NewMockSSEOperation creates a new MockSSEOperation instance
func (*MockSSEOperation) WriteHeader ¶ added in v1.9.0
func (m *MockSSEOperation) WriteHeader(ctx channel.HandlerContext, header http.Header, params map[string]any) channel.Future
WriteHeader writes HTTP headers for SSE
func (*MockSSEOperation) WriteMessage ¶ added in v1.9.0
func (m *MockSSEOperation) WriteMessage(ctx channel.HandlerContext, message SSEMessage, params map[string]any) channel.Future
WriteMessage writes a single SSE message
func (*MockSSEOperation) WriteMessages ¶ added in v1.9.0
func (m *MockSSEOperation) WriteMessages(ctx channel.HandlerContext, messages []SSEMessage, params map[string]any) channel.Future
WriteMessages writes multiple SSE messages
type ObjectLogStruct ¶
type ObjectLogStruct struct {
ChannelID string `json:"cid,omitempty"`
TrackID string `json:"tid,omitempty"`
State string `json:"state,omitempty"`
Handler string `json:"handler,omitempty"`
URI string `json:"uri,omitempty"`
Message any `json:"message,omitempty"`
RemoteAddr string `json:"remote_addr,omitempty"`
}
type PreCheckSkipOptions ¶ added in v1.11.3
type PreCheckSkipOptions interface {
SkipPreCheckForOptions() bool
}
PreCheckSkipOptions allows skipping PreCheck for OPTIONS method
type QualityValue ¶
type ReadRequestLogStruct ¶
type Request ¶
type Request struct {
// contains filtered or unexported fields
}
func (*Request) Accept ¶
func (r *Request) Accept() []QualityValue
func (*Request) AcceptCharset ¶
func (r *Request) AcceptCharset() []QualityValue
func (*Request) AcceptEncoding ¶
func (r *Request) AcceptEncoding() []QualityValue
func (*Request) AcceptLanguage ¶
func (r *Request) AcceptLanguage() []LanguageValue
func (*Request) ContentLength ¶
func (*Request) PreferLang ¶
func (*Request) RemoteAddrs ¶
func (*Request) RenewSession ¶
func (r *Request) RenewSession()
func (*Request) RequestURI ¶
func (*Request) Session ¶
func (r *Request) Session() httpsession.Session
func (*Request) TE ¶
func (r *Request) TE() []QualityValue
type RequestLogStruct ¶
type Response ¶
type Response struct {
// contains filtered or unexported fields
}
func EmptyResponse ¶
func EmptyResponse() *Response
func NewResponse ¶
func WrapResponse ¶
func WrapResponse(ch channel.NetChannel, response *ghttp.Response) *Response
func (*Response) DoneFuture ¶
func (*Response) JsonResponse ¶
func (*Response) ResponseError ¶
func (r *Response) ResponseError(er ErrorResponse)
func (*Response) SetContentType ¶
func (*Response) SetStatusCode ¶
func (*Response) StatusCode ¶
func (*Response) TextResponse ¶
type ResponseLogStruct ¶
type ResponseLogStruct struct {
URI string `json:"uri,omitempty"`
StatusCode int `json:"status_code,omitempty"`
Headers map[string]any `json:"headers,omitempty"`
Body string `json:"body,omitempty"`
OutBodyLength int `json:"out_body_length,omitempty"`
PreCompressLength int `json:"pre_compress_length,omitempty"`
}
type ResponseWriter ¶
type ResponseWriter interface {
ghttp.ResponseWriter
}
type ReturnCatch ¶
type ReturnCatch struct {
// contains filtered or unexported fields
}
type RouteNode ¶
type RouteNode interface {
Parent() RouteNode
HandlerTask() HandlerTask
Name() string
AggregatedAcceptances() []Acceptance
Acceptances() []Acceptance
Resources() map[string]RouteNode
RouteType() RouteType
}
type SSEMessage ¶
type SSEMessage struct {
Comment string `json:"comment"`
Event string `json:"event"`
Data []string `json:"data"`
Id string `json:"id"`
Retry int `json:"retry"`
}
func (SSEMessage) Validate ¶
func (m SSEMessage) Validate() bool
type SSEMessages ¶
type SSEMessages []SSEMessage
type SSEOperation ¶
type SSEOperation interface {
WriteHeader(ctx channel.HandlerContext, header http.Header, params map[string]any) channel.Future
WriteMessage(ctx channel.HandlerContext, message SSEMessage, params map[string]any) channel.Future
WriteMessages(ctx channel.HandlerContext, messages []SSEMessage, params map[string]any) channel.Future
}
type ServerChannel ¶
type ServerChannel struct {
channel.DefaultNetServerChannel
// contains filtered or unexported fields
}
func (*ServerChannel) IsActive ¶
func (c *ServerChannel) IsActive() bool
func (*ServerChannel) ServeHTTP ¶
func (c *ServerChannel) ServeHTTP(w http.ResponseWriter, r *http.Request)
func (*ServerChannel) UnsafeAccept ¶
func (c *ServerChannel) UnsafeAccept() (channel.Channel, channel.Future)
func (*ServerChannel) UnsafeBind ¶
func (c *ServerChannel) UnsafeBind(localAddr net.Addr) error
func (*ServerChannel) UnsafeClose ¶
func (c *ServerChannel) UnsafeClose() error
type SimpleRoute ¶
type SimpleRoute struct {
// contains filtered or unexported fields
}
func NewSimpleRoute ¶
func NewSimpleRoute() *SimpleRoute
func (*SimpleRoute) FindNode ¶
func (r *SimpleRoute) FindNode(path string) RouteNode
func (*SimpleRoute) SetEndpoint ¶
func (r *SimpleRoute) SetEndpoint(path string, handler HandlerTask, acceptances ...Acceptance) *SimpleRoute
func (*SimpleRoute) SetGroup ¶
func (r *SimpleRoute) SetGroup(path string, acceptances ...Acceptance) *SimpleRoute
func (*SimpleRoute) SetRoot ¶
func (r *SimpleRoute) SetRoot(handler HandlerTask, acceptances ...Acceptance) *SimpleRoute
func (*SimpleRoute) String ¶
func (r *SimpleRoute) String() string
type StaticFilesHandlerTask ¶
type StaticFilesHandlerTask struct {
DefaultHTTPHandlerTask
FolderPath string
DoMinify bool
DoCache bool
// contains filtered or unexported fields
}
func NewStaticFilesHandlerTask ¶
func NewStaticFilesHandlerTask(folderPath string) *StaticFilesHandlerTask
func (*StaticFilesHandlerTask) Get ¶
func (h *StaticFilesHandlerTask) Get(ctx channel.HandlerContext, req *Request, resp *Response, params map[string]any) ErrorResponse
type TaskHelper ¶
type TaskHelper struct {
}
func (*TaskHelper) GetNodeName ¶
func (h *TaskHelper) GetNodeName(params map[string]any) string
Source Files
¶
- acceptance.go
- httpclientchannel.go
- httpdispatchhandler.go
- httperrorresponse.go
- httpgziphandler.go
- httphandlertask.go
- httploghandler.go
- httpobjects.go
- httpparams.go
- httpserverchannel.go
- httpsessionservice.go
- httpstaticfilestask.go
- httptaskhelper.go
- method.go
- mock_http.go
- mock_httphandlertask.go
- mock_route.go
- mock_sseoperation.go
- proto.go
- route.go
- simpleroute.go