Documentation ¶
Overview ¶
Package rpc ...
Description : rpc ...
Author : go_developer@163.com<白茶清欢>
Date : 2022-06-29 14:08
Package rpc ...
Description : rpc ...
Author : go_developer@163.com<白茶清欢>
Date : 2023-02-14 14:33
Package rpc ...
Description : rpc ...
Author : go_developer@163.com<白茶清欢>
Date : 2022-06-30 18:33c
Package rpc ...
Description : rpc ...
Author : go_developer@163.com<白茶清欢>
Date : 2022-06-29 15:21
Index ¶
Constants ¶
const ( // DefaultConnectTimeout 默认连接超时 DefaultConnectTimeout = 100 // DefaultReadTimeout 默认读取超时 DefaultReadTimeout = 300 // DefaultCodeField 默认状态码字段 DefaultCodeField = "code" // DefaultMessageField 默认描述字段 DefaultMessageField = "message" // DefaultDataField 默认数据字段 DefaultDataField = "data" // SpecialFiledVal 特殊的 code / message / data配置 SpecialFiledVal = "-" )
Variables ¶
var (
// HttpClient http 客户端
HttpClient *httpClient
)
var (
// Request 请求实例
Request *request
)
Functions ¶
func InitRPCFromCfgDir ¶
InitRPCFromCfgDir 使用RPC配置文件路径初始化RPC
Author : go_developer@163.com<白茶清欢>
Date : 17:41 2022/7/1
Types ¶
type Api ¶
type Api struct { Flag string `json:"flag" yaml:"flag" ini:"flag"` // URI标识 MockEnable bool `json:"mock_enable" yaml:"mock_enable" ini:"mock_enable"` // 当前接口是否可用mock服务 Description string `json:"description" yaml:"description" ini:"description"` // 接口描述 URI string `json:"uri" yaml:"uri" ini:"uri"` // 接口地址 Method string `json:"method" yaml:"method" ini:"method"` // 请求方法 GET / POST / PUT 等 CodeField string `json:"code_field" yaml:"code_field" ini:"code_field"` // 状态码字段 MessageField string `json:"message_field" yaml:"message_field" ini:"message_field"` // 消息字段 DataField string `json:"data_field" yaml:"data_field" ini:"data_field"` // 数据字段(优先级高, 会覆盖) SuccessCodeList []string `json:"success_code_list" yaml:"success_code_list" ini:"success_code_list"` // 成功的值(优先级高, 会覆盖) SuccessHttpCodeList []int `json:"success_http_code_list" yaml:"success_http_code_list" ini:"success_http_code_list"` // 任务成功的http状态码, 不配置默认只有200(优先级高, 会覆盖) Header map[string]string `json:"header" yaml:"header" ini:"header"` // 传入的header BindURIParamList []string `json:"bind_uri_param_list" yaml:"bind_uri_param_list" ini:"bind_uri_param_list"` // 绑定到URI的参数列表 Timeout ApiTimeout `json:"timeout" yaml:"timeout" ini:"timeout"` // 超时配置 Retry ApiRetry `json:"retry" yaml:"retry" ini:"timeout"` // 重试策略 }
Api 接口的数据结构
Author : go_developer@163.com<白茶清欢>
Date : 14:18 2022/6/29
type ApiRetry ¶
type ApiRetry struct { ConnectTimeout bool `json:"connect_timeout" yaml:"connect_timeout" ini:"connect_timeout"` // 连接超时是否重试 ReadTimeout bool `json:"read_timeout" yaml:"read_timeout" ini:"read_timeout"` // 读取超时是否重试 BusinessCodeFail bool `json:"business_code_fail" yaml:"business_code_fail" ini:"business_code_fail"` // 业务状态码错误是否重试 HttpCodeFail bool `json:"http_code_fail" yaml:"http_code_fail" ini:"http_code_fail"` // http状态码异常是否重试 Count int `json:"count" yaml:"count" ini:"count"` // 重试次数 Frequency int `json:"frequency" yaml:"frequency" ini:"frequency"` // 重试频率, 单位 : ms }
ApiRetry 接口重试
Author : go_developer@163.com<白茶清欢>
Date : 15:10 2022/6/29
type ApiTimeout ¶
type ApiTimeout struct { Read int `json:"read" yaml:"read" ini:"read"` // 读取超时时间 Connect int `json:"connect" yaml:"connect" ini:"connect"` // 连接超时时间 }
ApiTimeout 超时配置
Author : go_developer@163.com<白茶清欢>
Date : 15:08 2022/6/29
type Service ¶
type Service struct { Flag string `json:"flag" yaml:"flag" ini:"flag"` // 服务标识, 全局唯一 Description string `json:"description" yaml:"description" ini:"description"` // 服务描述 Domain string `json:"domain" yaml:"domain" ini:"domain"` // 域名服务 MockEnable bool `json:"mock_enable" yaml:"mock_enable" ini:"mock_enable"` // 是否可用mock,默认false MockPath string `json:"mock_path" yaml:"mock_path" ini:"mock_path"` // mock数据的存储路径,不配置默认为 ./{service_flag} CodeField string `json:"code_field" yaml:"code_field" ini:"code_field"` // 状态码字段 MessageField string `json:"message_field" yaml:"message_field" ini:"message_field"` // 消息字段 DataField string `json:"data_field" yaml:"data_field" ini:"data_field"` // 数据字段 SuccessCodeList []string `json:"success_code_list" yaml:"success_code_list" ini:"success_code_list"` // 成功的值 SuccessHttpCodeList []int `json:"success_http_code_list" yaml:"success_http_code_list" ini:"success_http_code_list"` // 任务成功的http状态码, 不配置默认只有200(优先级高, 会覆盖) ApiTable map[string]*Api `json:"api_table" yaml:"api_table" ini:"api_table"` // api列表 ApiRetry ApiRetry `json:"api_retry" yaml:"api_retry" ini:"api_retry"` // 重试策略 }
Service 服务配置结构的定义
Author : go_developer@163.com<白茶清欢>
Date : 14:08 2022/6/29