Documentation ¶
Index ¶
- func CORSMiddleware(next http.Handler, corsOrigin string) http.Handler
- func LoggingMiddleware(next http.Handler, skipBody bool) http.Handler
- type AccessKeyType
- type Gateway
- func (g *Gateway) GET(handler Handler, preprocessors ...Processor)
- func (g *Gateway) Handle(method string, handler Handler, preprocessors ...Processor)
- func (g *Gateway) POST(handler Handler, preprocessors ...Processor)
- func (g *Gateway) PUT(handler Handler, preprocessors ...Processor)
- func (g *Gateway) ServeHTTP(w http.ResponseWriter, req *http.Request)
- type Handler
- type HandlerFunc
- type HandlerInjector
- type Payload
- type PreprocessorRegistry
- type Processor
- type Response
- type Router
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CORSMiddleware ¶ added in v0.5.0
Types ¶
type AccessKeyType ¶ added in v0.6.0
type AccessKeyType int
AccessKeyType is the type of the access key specified in client request
const ( // NoAccessKey denotes that an access key is not specified NoAccessKey AccessKeyType = 0 + iota // ClientAccessKey denotes that a client access key is specified ClientAccessKey // MasterAccessKey denotes that a master aclieneccess key is specified MasterAccessKey )
func (AccessKeyType) String ¶ added in v0.6.0
func (i AccessKeyType) String() string
type Gateway ¶
Gateway is a man in the middle to inject dependency It currently bind to HTTP method, it disregard path.
func NewGateway ¶
func (*Gateway) Handle ¶
Handle registers a handler matched by a request's method and URL's path. Pattern is a regexp that defines a matched URL.
type Handler ¶
Handler specifies the interface of a request handler
func NewFuncHandler ¶ added in v0.4.0
func NewFuncHandler(f HandlerFunc) Handler
NewFuncHandler is intend for using in test, not actual code.
type HandlerFunc ¶ added in v0.4.0
HandlerFunc specifies the function signature of a request handler function
type HandlerInjector ¶ added in v0.4.1
type HandlerInjector struct { ServiceGraph *inject.Graph PreprocessorMap *PreprocessorRegistry }
HandlerInjector is standard way to inject Services and Preprocessors specified by the Handler struct.
func (*HandlerInjector) Inject ¶ added in v0.4.1
func (i *HandlerInjector) Inject(h Handler) Handler
func (*HandlerInjector) InjectProcessors ¶ added in v0.4.1
func (i *HandlerInjector) InjectProcessors(h Handler) Handler
func (*HandlerInjector) InjectServices ¶ added in v0.4.1
func (i *HandlerInjector) InjectServices(h Handler) Handler
type Payload ¶
type Payload struct { // the raw http.Request of this payload // Think twice before accessing it Req *http.Request // URL parameters Params []string // Map of params such as Auth, TimeSteam, version Meta map[string]interface{} // Map of action payload Data map[string]interface{} Context context.Context AppName string UserInfoID string UserInfo *skydb.UserInfo AccessKey AccessKeyType DBConn skydb.Conn Database skydb.Database }
Payload is for passing payload to the actual handler
func (*Payload) AccessToken ¶
AccessToken return the user input string TODO: accept all header, json payload, query string(in order)
func (*Payload) RouteAction ¶
RouteAction must exist for every request
type PreprocessorRegistry ¶ added in v0.4.0
PreprocessorRegistry is holding all preprocessors and their mapping with a string name.
func (PreprocessorRegistry) GetByNames ¶ added in v0.4.0
func (r PreprocessorRegistry) GetByNames(names ...string) []Processor
GetByNames returns a list of registered preprocessors by preprocessor names.
type Response ¶
type Response struct { Meta map[string]interface{} `json:"-"` Info interface{} `json:"info,omitempty"` Result interface{} `json:"result,omitempty"` Err skyerr.Error `json:"error,omitempty"` RequestID string `json:"request_id,omitempty"` DatabaseID string `json:"database_id,omitempty"` // contains filtered or unexported fields }
Response is interface for handler to write response to router
func (*Response) Header ¶
Header returns the header map being written before return a response. Mutating the map after calling WriteEntity has no effects.
func (*Response) WriteEntity ¶
WriteEntity writes a value as response to a request. Currently it only writes JSON response.