define

package
v0.0.0-...-faef357 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 24, 2024 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Overview

Package define ...

Description : define ...

Author : go_developer@163.com<白茶清欢>

Date : 2024-10-09 18:39

Package define ...

Description : define ...

Author : go_developer@163.com<白茶清欢>

Date : 2024-05-31 16:02

Package define ...

Description : define ...

Author : go_developer@163.com<白茶清欢>

Date : 2024-05-31 14:51

Package define ...

Description : define ...

Author : go_developer@163.com<白茶清欢>

Date : 2024-05-24 17:09

Package define ...

Description : define ...

Author : go_developer@163.com<白茶清欢>

Date : 2024-05-31 12:34

Index

Constants

View Source
const (
	DefaultConnectTimeout = 1000      // 默认连接超时时间
	DefaultReadTimeout    = 1000      // 默认连接读取时间
	DefaultCodeField      = "code"    // 默认业务状态码字段
	DefaultMessageField   = "message" // 默认状态码描述字段
	DefaultDataField      = "data"    // 默认数据字段
)
View Source
const (
	RequestFailTypeSend          = "SEND_REQUEST_FAIL"      // 发送请求即失败, 问题出现在客户端
	RequestFailTypeClientError   = "CLIENT_REQUEST_ERROR"   // 请求失败, 原因出在客户端, 对应http code 4xx
	RequestFailTypeServerError   = "SERVER_DEAL_ERROR"      // 服务端处理失败, 对应 http code 5xx
	RequestFailTypeBusinessError = "SERVICE_BUSINESS_ERROR" // 返回状态码为200, 但是业务状态码非成功
)

Variables

View Source
var (
	ErrRequestConfigNil   = errors.New("REQUEST_CONFIG_NIL")    // 请求配置 nil
	ErrFullUrlEmpty       = errors.New("FULL_URL_EMPTY")        // 没传 full_url
	ErrFullUrlInvalid     = errors.New("FULL_URL_Invalid")      // 请求 full_url 不是 http 或者 https 开头
	ErrMethodIsNotSupport = errors.New("METHOD_IS_NOT_SUPPORT") // 请求 method不支持
)
View Source
var (
	DefaultSuccessCodeList = []string{"0"} // 默认成功业务状态码
)

Functions

This section is empty.

Types

type CachePreHeatConfig

type CachePreHeatConfig struct {
	Enable     bool  `json:"enable"`      // 缓存预热是否可用
	MinPercent int64 `json:"min_percent"` // 最小百分比, 剩余有效期低于此百分比进行预热
	MinTTL     int64 `json:"min_ttl"`     // 最小剩余生命周期, 低于此百分比进行预热
	Force      bool  `json:"force"`       // 启用预热的情况下, 强制预热, 会忽略 MinPercent / MinTTL 的配置
}

CachePreHeatConfig 缓存预热配置, MinPercent / MinTTL 同时配置, 则任意一个满足, 均进行预热

Author : go_developer@163.com<白茶清欢>

Date : 18:40 2024/10/9

type Http4xxHandler

type Http4xxHandler func(req *Request, rep *Response)

Http4xxHandler 4xx handler

Author : go_developer@163.com<白茶清欢>

Date : 14:54 2024/5/31

type Http5xxHandler

type Http5xxHandler func(req *Request, rep *Response)

Http5xxHandler 5xx handler

Author : go_developer@163.com<白茶清欢>

Date : 14:55 2024/5/31

type HttpBusinessErrorHandler

type HttpBusinessErrorHandler func(req *Request, rep *Response)

HttpBusinessErrorHandler 接口请求业务错误

Author : go_developer@163.com<白茶清欢>

Date : 18:04 2024/6/1

type Request

type Request struct {
	PathParam       map[string]string `json:"path_param"`        // 替换url中的占位符
	Body            map[string]any    `json:"body"`              // 请求Body
	Header          map[string]string `json:"header"`            // 请求Header
	Cookie          map[string]string `json:"cookie"`            // 请求Cookie
	Query           map[string]string `json:"query"`             // 请求query
	FullUrl         string            `json:"full_url"`          // 完整的请求URL
	ContentType     string            `json:"content_type"`      // 请求类型
	Method          string            `json:"method"`            // 请求方法
	DataField       string            `json:"data_field"`        // 数据字段
	CodeField       string            `json:"code_field"`        // 业务状态码字段
	MessageField    string            `json:"message_field"`     // code描述字段
	DataReceiver    interface{}       `json:"-"`                 // 响应data部分数据解析
	SuccessCodeList []string          `json:"success_code_list"` // 哪些业务状态码视为成功
	ConnectTimeout  int64             `json:"connect_timeout"`   // 连接超时时间: ms
	ReadTimeout     int64             `json:"read_timeout"`      // 读取超时时间
	RetryRule       *RequestRetryRule `json:"retry_rule"`        // 重试规则
}

Request 请求配置

Author : go_developer@163.com<白茶清欢>

Date : 17:10 2024/5/24

type RequestFinishHandler

type RequestFinishHandler func(req *Request, rep *Response)

RequestFinishHandler 请求最终完成事件, 不区分成功 OR 失败

Author : go_developer@163.com<白茶清欢>

Date : 18:34 2024/6/1

type RequestRetryRule

type RequestRetryRule struct {
	RetryCount            int      `json:"retry_count"`              // 重试次数
	RetryTimeInterval     int64    `json:"retry_time_interval"`      // 重试的时间间隔 1 - 10 之间, 单位毫秒
	RetryHttpCodeList     []int64  `json:"retry_http_code_list"`     // 哪些http状态码需要重试
	RetryBusinessCodeList []string `json:"retry_business_code_list"` // 哪些业务状态码需要重试
}

RequestRetryRule 重试规则

Author : go_developer@163.com<白茶清欢>

Date : 12:26 2024/5/31

type RequestSendErrorHandler

type RequestSendErrorHandler func(req *Request)

RequestSendErrorHandler 请求发送失败的处理逻辑

Author : go_developer@163.com<白茶清欢>

Date : 18:23 2024/6/1

type Response

type Response struct {
	Header            map[string]string  `json:"header"`              // 响应header
	Cookie            map[string]string  `json:"cookie"`              // 响应cookie
	Data              string             `json:"data"`                // 响应body
	Code              string             `json:"code"`                // 业务状态码
	Message           string             `json:"message"`             // 业务状态码描述
	Body              map[string]any     `json:"body"`                // 响应数据
	ExtendData        map[string]string  `json:"extend_data"`         // 除去 code / message / data 之外的其他数据
	HttpCode          int                `json:"http_code"`           // http状态码
	HttpCodeStatus    string             `json:"http_code_status"`    // http状态码描述
	ResponseDataRule  map[string]any     `json:"response_data_rule"`  // 返回数据的验证规则
	Seq               int                `json:"seq"`                 // 第几次请求
	RequestStartTime  int64              `json:"request_start_time"`  // 请求开始时间 : ms
	RequestFinishTime int64              `json:"request_finish_time"` // 请求完成时间 : ms
	UsedTime          int64              `json:"used_time"`           // 请求耗时 : ms
	RestyResponse     *resty.Response    `json:"-"`                   // 请求返回
	IsSuccess         bool               `json:"is_success"`          // 是否请求成功
	RequestCount      int                `json:"request_count"`       // 请求次数
	FailInfo          *ResponseFailInfo  `json:"fail_info"`           // 请求失败信息记录
	CacheInfo         *ResponseCacheInfo `json:"cache_info"`          // 缓存信息
}

Response 响应的数据结构定义

Author : go_developer@163.com<白茶清欢>

Date : 12:34 2024/5/31

type ResponseCacheInfo

type ResponseCacheInfo struct {
	IsCache     bool   `json:"is_cache"`     // 是否命中缓存
	SetCache    bool   `json:"set_cache"`    // 是否设置缓存
	CacheKey    string `json:"cache_key"`    // 缓存key
	CacheValue  string `json:"cache_value"`  // 缓存值
	CacheEnable bool   `json:"cache_enable"` // 是否允许缓存
	CacheError  error  `json:"-"`            // 缓存是否异常
}

ResponseCacheInfo 缓存信息

Author : go_developer@163.com<白茶清欢>

Date : 22:26 2024/6/14

type ResponseFailInfo

type ResponseFailInfo struct {
	Type    string `json:"type"`    // 失败类型
	Message string `json:"message"` // 失败信息
}

ResponseFailInfo 失败信息

Author : go_developer@163.com<白茶清欢>

Date : 17:48 2024/6/1

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL