network/httpclient/abstract/IResponse.go

33 lines
944 B
Go

// Package abstract ...
//
// Description : abstract ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2025-05-07 14:28
package abstract
import (
"git.zhangdeman.cn/zhangdeman/network/httpclient/define"
)
// IResponseParser 响应结果的序列化解析器
type IResponseParser interface {
// Unmarshal 反序列化解析
Unmarshal(byteData []byte, receiver any) error
// MarshalForByte 序列化
MarshalForByte(input any) ([]byte, error)
}
// IResponse 响应解析
type IResponse interface {
// Parse 解析响应
Parse(reqConfig *define.Request, response *define.Response) error
// BusinessSuccess 业务状态码是否成功
BusinessSuccess(reqCfg *define.Request, response *define.Response) bool
// HttpSuccess http状态码是否成功
HttpSuccess(reqCfg *define.Request, response *define.Response) bool
// NeedRetry 是否需要重试
NeedRetry(reqCfg *define.Request, response *define.Response) bool
}