38 lines
1.2 KiB
Go
38 lines
1.2 KiB
Go
// Package implement ...
|
|
//
|
|
// Description : implement ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 2025-05-07 14:53
|
|
package implement
|
|
|
|
import (
|
|
"git.zhangdeman.cn/zhangdeman/network/httpclient/abstract"
|
|
"git.zhangdeman.cn/zhangdeman/serialize"
|
|
)
|
|
|
|
// ResponseParserTable 响应数据解析器
|
|
// 此处为内置解析实现, 未加锁, 未做并发安全处理
|
|
// 原因: 无论 Add 还是 Delete, 均应在服务初始化阶段调用, 而在服务完成初始化, 完全启动之后, 应该只有读操作
|
|
// 如果强要运行时, 动态操作此配置表, 需在外部调用处自行加锁
|
|
// 也可完全自行实现相关解析实例, 在请求时通过 RequestOption 传入, 则控制权完全贵开发者所有
|
|
var ResponseParserTable = map[string]abstract.IResponseParser{
|
|
"json": serialize.JSON,
|
|
"xml": serialize.Xml,
|
|
"yml": serialize.Yml,
|
|
"toml": serialize.Toml,
|
|
"yaml": serialize.Yml,
|
|
"text": serialize.JSON,
|
|
}
|
|
|
|
// AddResponseParser 新增一个解析实现
|
|
func AddResponseParser(t string, parser abstract.IResponseParser) {
|
|
ResponseParserTable[t] = parser
|
|
}
|
|
|
|
// RemoveResponseParser 移除一个解析实现
|
|
func RemoveResponseParser(t string) {
|
|
delete(ResponseParserTable, t)
|
|
}
|