Documentation ¶
Index ¶
- Variables
- func CorsHandler(origins ...string) http.Handler
- type Middleware
- type PrivateKeyConf
- type RestConf
- type Route
- type RouteOption
- type RunOption
- func WithNotAllowedHandler(handler http.Handler) RunOption
- func WithNotFoundHandler(handler http.Handler) RunOption
- func WithRouter(router httpx.Router) RunOption
- func WithUnauthorizedCallback(callback handler.UnauthorizedCallback) RunOption
- func WithUnsignedCallback(callback handler.UnsignedCallback) RunOption
- type Server
- type SignatureConf
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrSignatureConfig = errors.New("bad config for Signature")
Functions ¶
func CorsHandler ¶
CorsHandler handles cross domain OPTIONS requests. At most one origin can be specified, other origins are ignored if given.
Types ¶
type Middleware ¶
type Middleware func(next http.HandlerFunc) http.HandlerFunc
func ToMiddleware ¶
func ToMiddleware(handler func(next http.Handler) http.Handler) Middleware
type PrivateKeyConf ¶
type RestConf ¶
type RestConf struct { service.ServiceConf Host string `json:",default=0.0.0.0"` Port int CertFile string `json:",optional"` KeyFile string `json:",optional"` Verbose bool `json:",optional"` MaxConns int `json:",default=10000"` MaxBytes int64 `json:",default=1048576,range=[0:8388608]"` // milliseconds Timeout int64 `json:",default=3000"` CpuThreshold int64 `json:",default=900,range=[0:1000]"` Signature SignatureConf `json:",optional"` }
Why not name it as Conf, because we need to consider usage like:
type Config struct { zrpc.RpcConf rest.RestConf }
if with the name Conf, there will be two Conf inside Config.
type Route ¶
type Route struct { Method string Path string Handler http.HandlerFunc }
func WithMiddleware ¶
func WithMiddleware(middleware Middleware, rs ...Route) []Route
func WithMiddlewares ¶
func WithMiddlewares(ms []Middleware, rs ...Route) []Route
type RouteOption ¶
type RouteOption func(r *featuredRoutes)
func WithJwt ¶
func WithJwt(secret string) RouteOption
func WithJwtTransition ¶
func WithJwtTransition(secret, prevSecret string) RouteOption
func WithPriority ¶
func WithPriority() RouteOption
func WithSignature ¶
func WithSignature(signature SignatureConf) RouteOption
type RunOption ¶
type RunOption func(*Server)
func WithNotAllowedHandler ¶
func WithNotFoundHandler ¶
func WithRouter ¶
func WithUnauthorizedCallback ¶
func WithUnauthorizedCallback(callback handler.UnauthorizedCallback) RunOption
func WithUnsignedCallback ¶
func WithUnsignedCallback(callback handler.UnsignedCallback) RunOption
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
func MustNewServer ¶
func (*Server) AddRoute ¶
func (e *Server) AddRoute(r Route, opts ...RouteOption)
func (*Server) AddRoutes ¶
func (e *Server) AddRoutes(rs []Route, opts ...RouteOption)
func (*Server) Use ¶
func (e *Server) Use(middleware Middleware)
type SignatureConf ¶
type SignatureConf struct { Strict bool `json:",default=false"` Expiry time.Duration `json:",default=1h"` PrivateKeys []PrivateKeyConf }
Click to show internal directories.
Click to hide internal directories.