engine

package
v0.7.1 Latest Latest
Warning

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

Go to latest
Published: Nov 20, 2024 License: MIT Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StatusStart = "start"
	StatusStop  = "stop"
)
View Source
const (
	ContentTypeName = constants.ContentTypeName
)
View Source
const SupportPackageIsVersion1 = true

SupportPackageIsVersion1 These constants should not be referenced from any other code.

Variables

This section is empty.

Functions

func CodecForRequest

func CodecForRequest(ctx context.Context, headerName string) (xbinding.Codec, bool)

CodecForRequest get encoding.Codec via http.Request

func DefaultErrorEncoder

func DefaultErrorEncoder(ctx context.Context, err error)

DefaultErrorEncoder encodes the error to the HTTP response.

func DefaultRequestDecoder

func DefaultRequestDecoder(ctx context.Context, v interface{}) (err error)

DefaultRequestDecoder decodes the request body to object.

func DefaultResponseEncoder

func DefaultResponseEncoder(ctx context.Context, v interface{}) (err error)

DefaultResponseEncoder encodes the object to the HTTP response.

func Deregister

func Deregister(name string)

Deregister 清理配置适配器

func Register

func Register(resolver Resolver)

Register 注册配置文件适配器

func RegistryEngineRoute

func RegistryEngineRoute(engine AdapterEngine, router *RouterGroup)

Types

type AdapterEngine

type AdapterEngine interface {
	NoMethod()
	NoRoute()
	Handle(method string, path string, callfunc HandlerFunc)
	Write(ctx context.Context, resp interface{})
	GetImpl() any
}

func NewEngine

func NewEngine(proto string, setting config.Config, opts ...Option) (AdapterEngine, error)

NewEngine 根据适配器名称及参数返回配置处理器

type DataEncoder

type DataEncoder interface {
	Render(ctx context.Context) error
}

type DecodeRequestFunc

type DecodeRequestFunc func(context.Context, interface{}) error

DecodeRequestFunc is decode request func.

type EncodeErrorFunc

type EncodeErrorFunc func(context.Context, error)

EncodeErrorFunc is encode error func.

type EncodeResponseFunc

type EncodeResponseFunc func(context.Context, interface{}) error

EncodeResponseFunc is encode response func.

type HandlerFunc

type HandlerFunc func(context.Context)
type Header xtypes.SMap

type Hook

type Hook func(ctx context.Context) error

type HttpEngine

type HttpEngine interface {
	ServeHTTP(http.ResponseWriter, *http.Request)
	StaticFS(relativePath string, fs http.FileSystem)
	StaticFile(string, string)
	Static(string, string)
}

type IChecker

type IChecker interface {
	Check() error
}

type LogContext

type LogContext interface {
	LogOptions() *log.Options
}

type Method

type Method string
const (
	MethodPost   Method = "POST"
	MethodGet    Method = "GET"
	MethodPut    Method = "PUT"
	MethodDelete Method = "DELETE"
)

func (Method) Apply added in v0.5.8

func (m Method) Apply(opts *RouterOptions)

func (Method) String added in v0.5.8

func (m Method) String() string

type NormalRouterOption added in v0.5.8

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

func (*NormalRouterOption) Apply added in v0.5.8

func (o *NormalRouterOption) Apply(opts *RouterOptions)

type Option

type Option func(*Options)

func WithConfig

func WithConfig(cfg config.Config) Option

func WithErrorEncoder

func WithErrorEncoder(errorEncoder EncodeErrorFunc) Option

func WithLogOptions

func WithLogOptions(opt *log.Options) Option

func WithRequestDecoder

func WithRequestDecoder(requestDecoder DecodeRequestFunc) Option

func WithResponseEncoder

func WithResponseEncoder(responseEncoder EncodeResponseFunc) Option

func WithSrvName

func WithSrvName(name string) Option

func WithSrvType

func WithSrvType(srvType string) Option

type Options

type Options struct {
	SrvType         string
	SrvName         string
	RequestDecoder  DecodeRequestFunc
	ResponseEncoder EncodeResponseFunc
	ErrorEncoder    EncodeErrorFunc
	LogOpts         *log.Options
	Config          config.Config
}

func DefaultOptions

func DefaultOptions() *Options

type Request

type Request interface {
	Context() context.Context
	WithContext(context.Context)
	GetName() string
	//GetService() string
	GetURL() *url.URL
	GetMethod() string
	Params() map[string]string
	GetHeader() map[string]string
	Body() []byte
	GetRemoteAddr() string
}

type Resolver added in v0.7.1

type Resolver interface {
	Name() string
	Resolve(name string, config config.Config, opts ...Option) (AdapterEngine, error)
}

type ResponseEntity added in v0.4.10

type ResponseEntity interface {
	StatusCode() int
	Header() map[string]string
	Body() (bytes []byte, err error)
}

type ResponseWriter

type ResponseWriter interface {
	Status() int
	Size() int
	Written() bool
	WriteHeader(code int)
	Header() xtypes.SMap
	Write(p []byte) (n int, err error)
	WriteString(string) (int, error)
	Flush() error
}

ResponseWriter ...

type RouterGroup

type RouterGroup struct {
	ServiceGroups map[string]*RouterWrapper
	Children      map[string]*RouterGroup
	// contains filtered or unexported fields
}

func NewRouterGroup

func NewRouterGroup(basePath string) *RouterGroup

func (*RouterGroup) BasePath

func (group *RouterGroup) BasePath() string

BasePath returns the base path of router group. For example, if v := router.Group("/rest/n/v1/api"), v.BasePath() is "/rest/n/v1/api".

func (*RouterGroup) GetTreePathList added in v0.5.11

func (group *RouterGroup) GetTreePathList() []string

func (*RouterGroup) Group

func (group *RouterGroup) Group(relativePath string, middlewares ...middleware.Middleware) *RouterGroup

Group creates a new router group. You should add all the routes that have common middlewares or the same path prefix. For example, all the routes that use a common middleware for authorization could be grouped.

func (*RouterGroup) Handle

func (group *RouterGroup) Handle(relativePath string, handler interface{}, opts ...RouterOption)

Handle registers a new request handle and middleware with the given path and method. The last handler should be the real handler, the other ones should be middleware that can and should be shared among different routes. See the example code in GitHub.

For GET, POST requests the respective shortcut functions can be used.

This function is intended for bulk loading and to allow the usage of less frequently used, non-standardized or custom methods (e.g. for internal communication with a proxy).

func (*RouterGroup) Use

func (group *RouterGroup) Use(middlewares ...middleware.Middleware) *RouterGroup

Use adds middleware to the group, see example code in GitHub.

type RouterList added in v0.5.14

type RouterList struct {
	ServerType string   `json:"server_type"  yaml:"server_type"`
	PathList   []string `json:"path_list"  yaml:"path_list"`
}

func (RouterList) GetPathList added in v0.5.14

func (r RouterList) GetPathList() []string

func (RouterList) GetType added in v0.5.14

func (r RouterList) GetType() string

type RouterOption added in v0.5.7

type RouterOption interface {
	Apply(*RouterOptions)
}

func WithExcludeLogReq added in v0.5.8

func WithExcludeLogReq() RouterOption

func WithExcludeLogResp added in v0.5.8

func WithExcludeLogResp() RouterOption

func WithMethod added in v0.5.7

func WithMethod(method ...string) RouterOption

func WithPrintHeaders added in v0.5.22

func WithPrintHeaders(keys ...constants.HeaderGetter) RouterOption

func WithPrintSource added in v0.5.22

func WithPrintSource(include bool) RouterOption

type RouterOptions added in v0.5.7

type RouterOptions struct {
	Methods        []string
	ExcludeLogReq  bool
	ExcludeLogResp bool
	WithHeaders    []constants.HeaderGetter //打印请求头
	WithSource     *bool                    //打印请求源
}

type RouterWrapper added in v0.5.8

type RouterWrapper struct {
	*router.Group
	// contains filtered or unexported fields
}

type RunStatus

type RunStatus uint
const (
	Unstarted RunStatus = 1
	Pause     RunStatus = 2
	Running   RunStatus = 4
	Pending   RunStatus = 8
	Stoped    RunStatus = 16
)

type Status

type Status string

Jump to

Keyboard shortcuts

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