增加请求的数据结构与响应的数据结构定义
This commit is contained in:
parent
b55b3f374a
commit
f1fac196f7
12
request/curl.go
Normal file
12
request/curl.go
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
// Package request...
|
||||||
|
//
|
||||||
|
// Description : http 请求
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 2021-08-01 8:47 下午
|
||||||
|
package request
|
||||||
|
|
||||||
|
func Send(apiMethod *APIMethod) {
|
||||||
|
|
||||||
|
}
|
48
request/define.go
Normal file
48
request/define.go
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
// Package request...
|
||||||
|
//
|
||||||
|
// Description : 定义请求的数据结构
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 2021-08-01 8:28 下午
|
||||||
|
package request
|
||||||
|
|
||||||
|
// APIMethod 定义API请求的信息
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 8:29 下午 2021/8/1
|
||||||
|
type APIMethod struct {
|
||||||
|
ServiceDomain string `json:"service_domain"` // 调用服务的域名
|
||||||
|
URI string `json:"uri"` // 调用的URI
|
||||||
|
Method string `json:"method"` // 请求方法
|
||||||
|
ISRestfulURI bool `json:"is_restful_uri"` // 是否为restful uri
|
||||||
|
Header map[string]string `json:"header"` // 请求header
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// ResponseConfig ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 8:32 下午 2021/8/1
|
||||||
|
type ResponseConfig struct {
|
||||||
|
ISJson bool `json:"is_json"` // 响应数据是否为json
|
||||||
|
CodeKey string `json:"code_key"` // 代表业务Code的Key
|
||||||
|
MessageKey string `json:"message_key"` // 描述业务code的key
|
||||||
|
DataKey string `json:"data_key"` // 返回数据的key
|
||||||
|
SuccessRule string `json:"success_rule"` // 请求成功的规则, http_code / business_code http状态码或者业务状态码, 如果是通过http code 判断是否为请求成功 code key / message key 配置无效
|
||||||
|
SuccessCode []string `json:"success_code"` // 哪些状态码被认为是请求成功
|
||||||
|
}
|
||||||
|
|
||||||
|
// APIResponse API响应数据
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 8:54 下午 2021/8/1
|
||||||
|
type APIResponse struct {
|
||||||
|
Data string `json:"data"` // 响应数据
|
||||||
|
Cost int64 `json:"cost"` // 接口耗时
|
||||||
|
StartRequestTime int64 `json:"start_request_time"` // 开始请求时间
|
||||||
|
FinishRequestTime int64 `json:"finish_request_time"` // 完成请求时间
|
||||||
|
}
|
@ -1,15 +0,0 @@
|
|||||||
// Package request 请求转发参数处理
|
|
||||||
//
|
|
||||||
// Author go_developer@163.com<白茶清欢>
|
|
||||||
package request
|
|
||||||
|
|
||||||
// ExtractParameterRule抽取参数提取的规则
|
|
||||||
//
|
|
||||||
// Author go_developer@163.com<白茶清欢>
|
|
||||||
type ExtractParameterRule struct {
|
|
||||||
RequestParameterName string // 入参参数名称
|
|
||||||
ForwardParameterName string // 转发参数名称
|
|
||||||
ValueType string // 值的数据类型
|
|
||||||
Required bool // 是否必须存在
|
|
||||||
DefaultValue interface{} // 默认值
|
|
||||||
}
|
|
@ -1,77 +0,0 @@
|
|||||||
// Package request ...
|
|
||||||
//
|
|
||||||
// Author: go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Description:
|
|
||||||
//
|
|
||||||
// File: restful.go
|
|
||||||
//
|
|
||||||
// Version: 1.0.0
|
|
||||||
//
|
|
||||||
// Date: 2021/07/07 20:11:57
|
|
||||||
package request
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
// URIConfig 构建URI的配置
|
|
||||||
//
|
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
type URIConfig struct {
|
|
||||||
Template string // url模版
|
|
||||||
IsRestful bool // 是否是restful url
|
|
||||||
Left string // 左侧分隔符,针对restful生效
|
|
||||||
Right string // 右侧分隔符,针对restful生效
|
|
||||||
RemoveURIParam bool // 移除已经适配到URI里面的参数, 针对restful生效
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDefaultNormalURIConfig构建普通URL配置
|
|
||||||
//
|
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
func NewDefaultNormalURIConfig(urlTemplate string) *URIConfig {
|
|
||||||
return &URIConfig{
|
|
||||||
Template: urlTemplate,
|
|
||||||
IsRestful: false,
|
|
||||||
Left: "",
|
|
||||||
Right: "",
|
|
||||||
RemoveURIParam: false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewDefaultNormalURIConfig 构建普通 restful URL配置
|
|
||||||
//
|
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
func NewDefaultRestfullURIConfig(urlTemplate string, left string, right string, removeURIParam bool) *URIConfig {
|
|
||||||
return &URIConfig{
|
|
||||||
Template: urlTemplate,
|
|
||||||
IsRestful: true,
|
|
||||||
Left: left,
|
|
||||||
Right: right,
|
|
||||||
RemoveURIParam: removeURIParam,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// BuildRestfulURL 构建 restful URI
|
|
||||||
//
|
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 2021/07/07 20:14:54
|
|
||||||
func BuildURL(uriConfig *URIConfig, parameter map[string]interface{}) (string, map[string]interface{}) {
|
|
||||||
if !uriConfig.IsRestful {
|
|
||||||
return uriConfig.Template, parameter
|
|
||||||
}
|
|
||||||
uri := uriConfig.Template
|
|
||||||
finalParameter := make(map[string]interface{})
|
|
||||||
for field, val := range parameter {
|
|
||||||
if strings.Contains(uri, uriConfig.Left+field+uriConfig.Right) {
|
|
||||||
uri = strings.ReplaceAll(uri, uriConfig.Left+field+uriConfig.Right, fmt.Sprintf("%v", val))
|
|
||||||
if uriConfig.RemoveURIParam {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
finalParameter[field] = val
|
|
||||||
}
|
|
||||||
return uri, finalParameter
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user