12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package rest
- import (
- "time"
- "github.com/zeromicro/go-zero/core/service"
- )
- type (
- // MiddlewaresConf is the config of middlewares.
- MiddlewaresConf struct {
- Trace bool `json:",default=true"`
- Log bool `json:",default=true"`
- Prometheus bool `json:",default=true"`
- MaxConns bool `json:",default=true"`
- Breaker bool `json:",default=true"`
- Shedding bool `json:",default=true"`
- Timeout bool `json:",default=true"`
- Recover bool `json:",default=true"`
- Metrics bool `json:",default=true"`
- MaxBytes bool `json:",default=true"`
- Gunzip bool `json:",default=true"`
- }
- // A PrivateKeyConf is a private key config.
- PrivateKeyConf struct {
- Fingerprint string
- KeyFile string
- }
- // A SignatureConf is a signature config.
- SignatureConf struct {
- Strict bool `json:",default=false"`
- Expiry time.Duration `json:",default=1h"`
- PrivateKeys []PrivateKeyConf
- }
- // A RestConf is a http service config.
- // 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.
- 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"`
- // milliseconds
- Timeout int64 `json:",default=3000"`
- CpuThreshold int64 `json:",default=900,range=[0:1000]"`
- Signature SignatureConf `json:",optional"`
- // There are default values for all the items in Middlewares.
- Middlewares MiddlewaresConf
- }
- )
|