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:33554432]"`
// 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 ¶
MustNewServer returns a server with given config of c and options defined in opts. Be aware that later RunOption might overwrite previous one that write the same option. The process will exit if error occurs.
func NewServer ¶
NewServer returns a server with given config of c and options defined in opts. Be aware that later RunOption might overwrite previous one that write the same option.
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.