network/curl/define.go

93 lines
3.3 KiB
Go

// Package curl 基础请求库
//
// Author: go_developer@163.com<白茶清欢>
//
// Description: 基础常量定义
//
// File: define.go
//
// Version: 1.0.0
//
// Date: 2022/05/01 19:56:48
package curl
import (
"github.com/ddliu/go-httpclient"
)
const (
// ContentTypeFormData form-data 请求
ContentTypeFormData = "form-data"
// ContentTypeFormURLEncoded x-www-form-urlencoded 请求
ContentTypeFormURLEncoded = "application/x-www-form-urlencoded"
// ContentTypeJSON json的请求方式
ContentTypeJSON = "application/json"
// ContentTypeDefault 默认的请求方式
ContentTypeDefault = ContentTypeJSON
)
const (
// BodyTypeJson json数据
BodyTypeJson = "json"
// BodyTypeXML xml数据
BodyTypeXML = "xml"
// BodyTypeYaml yaml数据
BodyTypeYaml = "yaml"
)
const (
// DefaultConnectTimeout 默认连接超时时间, 毫秒
DefaultConnectTimeout = 1000
// DefaultReadTimeout 默认读取超时时间, 毫秒
DefaultReadTimeout = 1000
)
// ApiRequestConfig api请求的配置
//
// Author : go_developer@163.com<白茶清欢>
//
// Description:
//
// Date: 2022/05/01 20:14:18
type ApiRequestConfig struct {
Method string `json:"method"` // 请求方法
Domain string `json:"domain"` // 请求域名
URI string `json:"uri"` // 请求的路由
ResponseCodeField string `json:"response_code_field"` // 业务状态码字段
ResponseMessageField string `json:"response_message_field"` // 业务状态码描述的字段
ResponseDataField string `json:"response_data_field"` // 业务数据的字段
SuccessCodeList []string `json:"success_code_list"` // 代表请求成功的code列表
SuccessHttpCodeList []string `json:"success_http_code_list"` // 代表成功的http code列表
Parameter map[string]interface{} `json:"parameter"` // 传入的请求参数
CommonHeader map[string]string `json:"common_header"` // 全部请求都要传的header
Body []byte `json:"-"` // 请求体
FullURL string `json:"full_url"` // 完整请求地址
Timeout Timeout `json:"timeout"` // 超时配置
ContentType string `json:"content_type"` // 请求方法
}
// Timeout 超时配置
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 15:02 2022/5/2
type Timeout struct {
Connect int `json:"connect"` // 连接超时
Read int `json:"read"` // 读取超时时间
}
// ApiResponse 接口响应结果
//
// Author : go_developer@163.com<白茶清欢>
//
// Description:
//
// Date: 2022/05/01 20:25:39
type ApiResponse struct {
RequestConfig *ApiRequestConfig `json:"request_config"` // 请求配置
Response *httpclient.Response `json:"response"` // 响应体
Exception *Exception `json:"exception"` // 异常信息
StartRequestTime int64 `json:"start_request_time"` // 开始请求时间, 纳秒
FinishRequestTime int64 `json:"finish_request_time"` // 完成请求时间,纳秒
}