From 6916755206bb2a1299ebd904e9db723802559eef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Sat, 2 Jul 2022 13:33:21 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E6=94=AF?= =?UTF-8?q?=E6=8C=81ini=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- define.go | 62 +++++++++++++++++++++++++++---------------------------- go.mod | 3 ++- go.sum | 4 ++++ 3 files changed, 37 insertions(+), 32 deletions(-) diff --git a/define.go b/define.go index 587917e..e39ad95 100644 --- a/define.go +++ b/define.go @@ -13,16 +13,16 @@ package rpc // // Date : 14:08 2022/6/29 type Service struct { - Flag string `json:"flag" yaml:"flag"` // 服务标识, 全局唯一 - Description string `json:"description" yaml:"description"` // 服务描述 - Domain string `json:"domain" yaml:"domain"` // 域名服务 - CodeField string `json:"code_field" yaml:"code_field"` // 状态码字段 - MessageField string `json:"message_field" yaml:"message_field"` // 消息字段 - DataField string `json:"data_field" yaml:"data_field"` // 数据字段 - SuccessCodeList []string `json:"success_code_list" yaml:"success_code_list"` // 成功的值 - SuccessHttpCodeList []int `json:"success_http_code_list" yaml:"success_http_code_list"` // 任务成功的http状态码, 不配置默认只有200(优先级高, 会覆盖) - ApiTable map[string]*Api `json:"api_table" yaml:"api_table"` // api列表 - ApiRetry ApiRetry `json:"api_retry" yaml:"api_retry"` // 重试策略 + Flag string `json:"flag" yaml:"flag" ini:"flag"` // 服务标识, 全局唯一 + Description string `json:"description" yaml:"description" ini:"description"` // 服务描述 + Domain string `json:"domain" yaml:"domain" ini:"domain"` // 域名服务 + 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"` // 重试策略 } // Api 接口的数据结构 @@ -31,19 +31,19 @@ type Service struct { // // Date : 14:18 2022/6/29 type Api struct { - Flag string `json:"flag" yaml:"flag"` // URI标识 - Description string `json:"description" yaml:"description"` // 接口描述 - URI string `json:"uri" yaml:"uri"` // 接口地址 - Method string `json:"method" yaml:"method"` // 请求方法 GET / POST / PUT 等 - CodeField string `json:"code_field" yaml:"code_field"` // 状态码字段 - MessageField string `json:"message_field" yaml:"message_field"` // 消息字段 - DataField string `json:"data_field" yaml:"data_field"` // 数据字段(优先级高, 会覆盖) - SuccessCodeList []string `json:"success_code_list" yaml:"success_code_list"` // 成功的值(优先级高, 会覆盖) - SuccessHttpCodeList []int `json:"success_http_code_list" yaml:"success_http_code_list"` // 任务成功的http状态码, 不配置默认只有200(优先级高, 会覆盖) - Header map[string]string `json:"header" yaml:"header"` // 传入的header - BindURIParamList []string `json:"bind_uri_param_list" yaml:"bind_uri_param_list"` // 绑定到URI的参数列表 - Timeout ApiTimeout `json:"timeout" yaml:"timeout"` - Retry ApiRetry `json:"retry" yaml:"retry"` // 重试策略 + Flag string `json:"flag" yaml:"flag" ini:"flag"` // URI标识 + 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"` // 重试策略 } // ApiTimeout 超时配置 @@ -52,8 +52,8 @@ type Api struct { // // Date : 15:08 2022/6/29 type ApiTimeout struct { - Read int `json:"read" yaml:"read"` // 读取超时时间 - Connect int `json:"connect" yaml:"connect"` // 连接超时时间 + Read int `json:"read" yaml:"read" ini:"read"` // 读取超时时间 + Connect int `json:"connect" yaml:"connect" ini:"connect"` // 连接超时时间 } // ApiRetry 接口重试 @@ -62,12 +62,12 @@ type ApiTimeout struct { // // Date : 15:10 2022/6/29 type ApiRetry struct { - ConnectTimeout bool `json:"connect_timeout" yaml:"connect_timeout"` // 连接超时是否重试 - ReadTimeout bool `json:"read_timeout" yaml:"read_timeout"` // 读取超时是否重试 - BusinessCodeFail bool `json:"business_code_fail" yaml:"business_code_fail"` // 业务状态码错误是否重试 - HttpCodeFail bool `json:"http_code_fail"` // http状态码异常是否重试 - Count int `json:"count" yaml:"count"` // 重试次数 - Frequency int `json:"frequency" yaml:"frequency"` // 重试频率, 单位 : ms + 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 } // responseDaFieldConfig 响应数据的字段配置 diff --git a/go.mod b/go.mod index 3b34c02..af150f5 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module git.zhangdeman.cn/zhangdeman/rpc go 1.17 require ( - git.zhangdeman.cn/zhangdeman/util v0.0.0-20220626081130-cbac0b676fb8 + git.zhangdeman.cn/zhangdeman/util v0.0.0-20220702052429-b5ae4cf80989 github.com/ddliu/go-httpclient v0.6.9 github.com/gin-gonic/gin v1.8.1 github.com/tidwall/gjson v1.14.1 @@ -13,6 +13,7 @@ require ( require ( github.com/gin-contrib/sse v0.1.0 // indirect + github.com/go-ini/ini v1.66.6 // indirect github.com/go-playground/locales v0.14.0 // indirect github.com/go-playground/universal-translator v0.18.0 // indirect github.com/go-playground/validator/v10 v10.11.0 // indirect diff --git a/go.sum b/go.sum index 8d1ec7d..4c68b35 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ git.zhangdeman.cn/zhangdeman/util v0.0.0-20220626081130-cbac0b676fb8 h1:HTa2y2Fsh9q48f29I/V2LhVQ5Pai55ULP1Qj3qwhrOE= git.zhangdeman.cn/zhangdeman/util v0.0.0-20220626081130-cbac0b676fb8/go.mod h1:G2/OKMbEn89d+YUXQtv9Nlh0LGg14pOqDnbOgBTTRXY= +git.zhangdeman.cn/zhangdeman/util v0.0.0-20220702052429-b5ae4cf80989 h1:2yuM4QDfQ2UjzxNdtCY7CpOxclp31BqWQg09mB1ydfk= +git.zhangdeman.cn/zhangdeman/util v0.0.0-20220702052429-b5ae4cf80989/go.mod h1:aQsgOqtMnnwG2n7T/0a1OkYigqBzZivv8Ea6683bK2M= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -12,6 +14,8 @@ github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8= github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= +github.com/go-ini/ini v1.66.6 h1:h6k2Bb0HWS/BXXHCXj4QHjxPmlIU4NK+7MuLp9SD+4k= +github.com/go-ini/ini v1.66.6/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU=