Documentation ¶
Index ¶
- Constants
- Variables
- func JsonRequest[T any](ctx context.Context, method, addr string, body interface{}, ...) (int, *T, error)
- func RegHook(f func(ctx context.Context, call *HttpRequest))
- func Request(ctx context.Context, method, addr string, body []byte, ...) (int, []byte, error)
- type HttpRequest
- type ParamConfig
Constants ¶
View Source
const CtxKey_nolog = utils.CtxKey_nolog // 不打印日志,错误日志还会打印 值:不受限制 一般写1
Variables ¶
View Source
var ParamConf loader.JsonLoader[ParamConfig]
Functions ¶
func JsonRequest ¶
func JsonRequest[T any](ctx context.Context, method, addr string, body interface{}, headers map[string]string) (int, *T, error)
body和返回值都是可以转Json的对象
func RegHook ¶
func RegHook(f func(ctx context.Context, call *HttpRequest))
Types ¶
type HttpRequest ¶
type HttpRequest struct { Method string // 请求方法 GET POST .. Addr string // 请求地址 URL *url.URL Header http.Header //请求头 Data []byte // 请求数据 Err error // 内部错误 Resp *http.Response // 请求返回对象 Err==nil时有效 RespData []byte // 请求返回数据 Err==nil时有效 Elapsed time.Duration // 请求耗时 Body interface{} // 根据请求接口来填充原始对象 RespBody interface{} // 根据请求接口来填充原始对象 // contains filtered or unexported fields }
func JsonRequest2 ¶
func JsonRequest2[T any](ctx context.Context, method, addr string, body interface{}, header http.Header) (*T, *HttpRequest)
专业接口 body和返回值都是可以转Json的对象
type ParamConfig ¶
type ParamConfig struct { // 日志级别和zerolog.Level一致 // Host和Path共存的配置,优先使用Path配置 LogLevel int `json:"loglevel,omitempty"` // 默认的级别,不配置就是info级别 LogLevelByHost map[string]int `json:"loglevelbyhost,omitempty"` // 根据Host区分的日志级别,Host:日志级别, Host支持?*通配符 不区分大小写,不配置默认使用LogLevel级别 LogLevelByPath map[string]int `json:"loglevelbypath,omitempty"` // 根据Path区分的日志级别,Path:日志级别 Path支持?*通配符 不区分大小写,不配置默认使用LogLevel级别 LogLevelHead int `json:"loglevelhead,omitempty"` // 请求头和回复头的日志级别,不配置就是debug级别 LogLevelHeadByHost map[string]int `json:"loglevelheadbyhost,omitempty"` // 根据Host区分的请求头和回复头日志级别,Host:日志级别, Host支持?*通配符 不区分大小写,不配置默认使用LogLevelHead级别 LogLevelHeadByPath map[string]int `json:"loglevelheadbypath,omitempty"` // 根据Path区分的请求头和回复头日志级别,Path:日志级别 Path支持?*通配符 不区分大小写,不配置默认使用LogLevelHead级别 TimeOutCheck int `json:"timeoutcheck,omitempty"` // 消息超时监控 单位秒 默认0不开启监控 Pool bool `json:"pool,omitempty"` // 是否使用连接池,有些网址处理完请求就执行关闭,会导致连接池有问题,默认不使用 BodyLogLimit int `json:"bodyloglimit,omitempty"` // body日志限制 <=0 表示不限制 // Timeout: 执行 command 的超时时间 单位为毫秒 // MaxConcurrentRequests: 最大并发量 // RequestVolumeThreshold: 一个统计窗口 10 秒内请求数量 达到这个请求数量后才去判断是否要开启熔断 // SleepWindow: 熔断器被打开后 SleepWindow的时间就是控制过多久后去尝试服务是否可用了 单位为毫秒 // ErrorPercentThreshold: 错误百分比 请求数量大于等于 RequestVolumeThreshold 并且错误率到达这个百分比后就会启动熔断 Hystrix map[string]*hystrix.CommandConfig `json:"hystrix,omitempty"` // 熔断器 [url:Config],path 支持?*通配符 不区分大小写 目前不支持动态删除 }
参数配置
func (*ParamConfig) Create ¶
func (c *ParamConfig) Create()
func (*ParamConfig) GetLogLevel ¶
func (c *ParamConfig) GetLogLevel(path, host string) int
func (*ParamConfig) GetLogLevelHead ¶
func (c *ParamConfig) GetLogLevelHead(path, host string) int
func (*ParamConfig) IsHystrixURL ¶
func (c *ParamConfig) IsHystrixURL(url string) (string, bool)
func (*ParamConfig) Normalize ¶
func (c *ParamConfig) Normalize()
Click to show internal directories.
Click to hide internal directories.