network/httpclient/define.go

126 lines
5.0 KiB
Go
Raw Normal View History

2023-08-10 14:29:19 +08:00
// Package httpclient 基础请求库
2022-05-01 20:02:15 +08:00
//
// Author: go_developer@163.com<白茶清欢>
//
// Description: 基础常量定义
//
// File: define.go
//
// Version: 1.0.0
//
// Date: 2022/05/01 19:56:48
2023-08-10 14:29:19 +08:00
package httpclient
2022-05-01 20:02:15 +08:00
2022-05-02 15:17:21 +08:00
import (
"git.zhangdeman.cn/zhangdeman/exception"
2022-05-02 15:17:21 +08:00
"github.com/ddliu/go-httpclient"
)
2022-05-02 15:03:56 +08:00
2022-05-01 20:09:36 +08:00
const (
// ContentTypeFormData form-data 请求
ContentTypeFormData = "form-data"
// ContentTypeFormURLEncoded x-www-form-urlencoded 请求
ContentTypeFormURLEncoded = "application/x-www-form-urlencoded"
// ContentTypeJSON json的请求方式
ContentTypeJSON = "application/json"
2022-05-02 15:30:55 +08:00
// ContentTypeDefault 默认的请求方式
ContentTypeDefault = ContentTypeJSON
2022-05-01 20:09:36 +08:00
)
const (
// BodyTypeJson json数据
BodyTypeJson = "json"
// BodyTypeXML xml数据
BodyTypeXML = "xml"
// BodyTypeYaml yaml数据
BodyTypeYaml = "yaml"
)
2022-05-02 15:30:55 +08:00
const (
// DefaultConnectTimeout 默认连接超时时间, 毫秒
DefaultConnectTimeout = 1000
// DefaultReadTimeout 默认读取超时时间, 毫秒
DefaultReadTimeout = 1000
// DefaultResponseCodeField 默认code字段
DefaultResponseCodeField = "code"
// DefaultResponseMessageField 默认message字段
DefaultResponseMessageField = "message"
// DefaultResponseDataField 默认数据字段
DefaultResponseDataField = "data"
2023-08-26 22:13:25 +08:00
// DefaultFailMessage 接口响应失败
DefaultFailMessage = "api request fail"
// DefaultSuccessMessage 接口响应成功
DefaultSuccessMessage = "api request success"
)
var (
// DefaultSuccessCode 默认成功状态码
DefaultSuccessCode = []string{"0", "200"}
// DefaultSuccessHttpCode 默认成功http状态码
DefaultSuccessHttpCode = []string{"200"}
2022-05-02 15:30:55 +08:00
)
2023-08-26 20:31:21 +08:00
const (
// ResponseCodeFieldLocationBody 响应状态码在body
ResponseCodeFieldLocationBody = "body"
// ResponseCodeFieldLocationHeader 在header
ResponseCodeFieldLocationHeader = "header"
// ResponseCodeFieldLocationDefault 响应状态码位置默认值
ResponseCodeFieldLocationDefault = ResponseCodeFieldLocationBody
// ResponseBodyAsData 会用整体的body作为数据
2023-08-27 15:55:31 +08:00
ResponseBodyAsData = "__response__body__"
2023-08-26 20:31:21 +08:00
)
// ApiRequestConfig api请求的配置
//
// Author : go_developer@163.com<白茶清欢>
//
// Description:
//
// Date: 2022/05/01 20:14:18
type ApiRequestConfig struct {
2023-08-26 20:31:21 +08:00
Method string `json:"method"` // 请求方法
Domain string `json:"domain"` // 请求域名
URI string `json:"uri"` // 请求的路由
ResponseCodeField string `json:"response_code_field"` // 业务状态码字段
ResponseCodeFieldLocation string `json:"response_code_field_location"` // 响应的业务状态码位置, 默认 : body . 可配置 body / header
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"` // 请求方法
2022-05-02 15:03:56 +08:00
}
// Timeout 超时配置
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 15:02 2022/5/2
type Timeout struct {
2023-03-10 16:29:19 +08:00
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 {
2022-05-02 15:17:21 +08:00
RequestConfig *ApiRequestConfig `json:"request_config"` // 请求配置
Response *httpclient.Response `json:"response"` // 响应体
Exception exception.IException `json:"-"` // 异常信息
2022-05-02 15:17:21 +08:00
StartRequestTime int64 `json:"start_request_time"` // 开始请求时间, 纳秒
FinishRequestTime int64 `json:"finish_request_time"` // 完成请求时间,纳秒
2023-08-26 20:31:21 +08:00
Code string `json:"code"` // 业务状态码
Message string `json:"message"` // 状态码描述
Data string `json:"data"` // 响应数据
}