Documentation
¶
Index ¶
- Constants
- Variables
- type CompResult
- type Detail
- type Error
- func (*Error) Descriptor() ([]byte, []int)deprecated
- func (x *Error) GetCode() int32
- func (x *Error) GetMsg() string
- func (x *Error) GetType() int32
- func (*Error) ProtoMessage()
- func (x *Error) ProtoReflect() protoreflect.Message
- func (x *Error) Reset()
- func (x *Error) String() string
- func (x *Error) ToError() *errs.Error
- type ID
- type MemberScore
- type ModResult
- type PageResult
- type QueryResp
- type RequestHeader
- func (*RequestHeader) Descriptor() ([]byte, []int)deprecated
- func (x *RequestHeader) GetAppid() uint64
- func (x *RequestHeader) GetAuthRand() uint32
- func (x *RequestHeader) GetBak() string
- func (x *RequestHeader) GetCallee() string
- func (x *RequestHeader) GetCaller() string
- func (x *RequestHeader) GetCompress() uint32
- func (x *RequestHeader) GetIp() string
- func (x *RequestHeader) GetQueryMode() uint32
- func (x *RequestHeader) GetRequestId() uint64
- func (x *RequestHeader) GetRequestType() uint32
- func (x *RequestHeader) GetSign() string
- func (x *RequestHeader) GetTimeout() uint32
- func (x *RequestHeader) GetTimestamp() uint64
- func (x *RequestHeader) GetTraceId() string
- func (x *RequestHeader) GetVersion() uint32
- func (*RequestHeader) ProtoMessage()
- func (x *RequestHeader) ProtoReflect() protoreflect.Message
- func (x *RequestHeader) Reset()
- func (x *RequestHeader) String() string
- type ResponseHeader
- func (*ResponseHeader) Descriptor() ([]byte, []int)deprecated
- func (x *ResponseHeader) GetCompress() uint32
- func (x *ResponseHeader) GetErr() *Error
- func (x *ResponseHeader) GetIsNil() bool
- func (x *ResponseHeader) GetQueryMode() uint32
- func (x *ResponseHeader) GetRequestId() uint64
- func (x *ResponseHeader) GetRspErrs() map[string]*Error
- func (x *ResponseHeader) GetRspNils() map[string]bool
- func (x *ResponseHeader) GetVersion() uint32
- func (*ResponseHeader) ProtoMessage()
- func (x *ResponseHeader) ProtoReflect() protoreflect.Message
- func (x *ResponseHeader) Reset()
- func (x *ResponseHeader) String() string
- type Scroll
- type Unit
Constants ¶
View Source
const ( HeaderVersion = "head-version" // 客户端版本 HeaderQueryMode = "head-query-mode" // 查询模式 0-单执行单元(默认)1-多执行单元并行(不含嵌套子查询) 2-复合查询(包含嵌套子查询) HeaderRequestID = "head-request-id" // 请求唯一id HeaderTraceID = "head-trace-id" // trace-id HeaderTimestamp = "head-timestamp" // 请求时间戳(精确到毫秒) HeaderTimeout = "head-timeout" // 请求超时时间,单位ms HeaderCaller = "head-caller" // 主调服务的名称 app.server.service HeaderAppid = "head-appid" // appid HeaderAuthRand = "head-auth-rand" // 随机生成 0-9999999 的数字,相同 timestamp 不允许出现同样的 ip、auth_rand。为了避免碰撞,0-9999999,单机理论最大支持 100 亿/秒的并发。 HeaderSign = "head-sign" // sign 签名,为 md5(appid+secret+version+request_type+query_mode+request_id+trace_id+timestamp+timeout+caller+compress+ip+auth_rand) HeaderIsNil = "head-is-nil" // 返回是否为空(针对单执行单元) HeaderErrorType = "head-error-type" // 错误类型 HeaderErrorCode = "head-error-code" // 错误码 HeaderErrorMessage = "head-error-msg" // 错误消息 HeaderRspNils = "head-rsp-nils" // 是否为空返回,是一个 json 串,内容为:map[string]bool(针对多执行单元并发) HeaderRspErrs = "head-rsp-errs" // 错误返回,是一个json 串,内容为:map[string]Error(针对多执行单元并发) )
Variables ¶
View Source
var File_header_proto protoreflect.FileDescriptor
Functions ¶
This section is empty.
Types ¶
type CompResult ¶
type CompResult struct {
Error *Error `orm:"error,omitempty" json:"error,omitempty"` // 错误返回
IsNil bool `orm:"is_nil,omitempty" json:"is_nil,omitempty"` // 是否为空
Detail *Detail `orm:"detail,omitempty" json:"detail,omitempty"` // 查询细节信息
Data interface{} `orm:"data" json:"data"` // 返回数据
}
CompResult 混合查询返回结果
type Detail ¶
type Detail struct {
Total uint64 `orm:"total" json:"total"` // 总数
TotalPage uint32 `orm:"total_page,omitempty" json:"total_page,omitempty"` // 总页数
Page int `orm:"page,omitempty" json:"page,omitempty"` // 当前分页
Size int `orm:"size,omitempty" json:"size,omitempty"` // 每页大小
Scroll *Scroll `orm:"scroll,omitempty" json:"scroll,omitempty"` // 滚动翻页信息
Extras map[string]interface{} `orm:"extras,omitempty" json:"extras,omitempty"` // 更多详细信息
}
Detail 其他查询细节信息,例如 分页信息、滚动翻页信息、其他信息等。
type Error ¶
type Error struct {
Type int32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` //错误类型
Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` //错误码
Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` //错误信息
// contains filtered or unexported fields
}
func (*Error) Descriptor
deprecated
func (*Error) ProtoMessage ¶
func (*Error) ProtoMessage()
func (*Error) ProtoReflect ¶
func (x *Error) ProtoReflect() protoreflect.Message
type MemberScore ¶
type MemberScore struct {
Member []string `orm:"member,omitempty" json:"member,omitempty"`
Score []float64 `orm:"score,omitempty" json:"score,omitempty"`
}
MemberScore redis 集合成员及其分数信息。
type ModResult ¶
type ModResult struct {
ID ID `orm:"id,omitempty" json:"id,omitempty"` // id 主键,可能是 mysql 的最后自增id,last_insert_id 或 elastic 的 _id 等,类型可能是 int64、string
RowAffected int64 `orm:"rows_affected,omitempty" json:"rows_affected,omitempty"` // 影响行数
Version int64 `orm:"version,omitempty" json:"version,omitempty"` // 数据版本
Status int `orm:"status,omitempty" json:"status,omitempty"` // 返回状态码
Reason string `orm:"reason,omitempty" json:"reason,omitempty"` // mod 失败原因
Extras map[string]interface{} `orm:"extras,omitempty" json:"extras,omitempty"` // 更多详细信息
}
ModResult 新增/更新返回信息
type PageResult ¶
type PageResult struct {
Detail *Detail `orm:"detail,omitempty" json:"detail,omitempty"` // 查询细节信息
Data []interface{} `orm:"data,omitempty" json:"data,omitempty"` // 分页结果
}
PageResult 当 page > 1 时会返回分页结果
type QueryResp ¶
type QueryResp struct {
IsNil bool `orm:"is_nil,omitempty" json:"is_nil,omitempty"` // 是否为空,仅针对单查询单元
RspNils map[string]bool `orm:"rsp_nils,omitempty" json:"rsp_nils,omitempty"` // 是否为空,针对并行查询
RspErrs map[string]*Error `orm:"rsp_errs,omitempty" json:"rsp_errs,omitempty"` // 返回错误码,针对并行查询
RspData interface{} `orm:"rsp_data,omitempty" json:"rsp_data,omitempty"` // 返回数据
}
QueryResp 返回请求
type RequestHeader ¶
type RequestHeader struct {
Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` // 客户端版本
RequestType uint32 `protobuf:"varint,2,opt,name=request_type,json=requestType,proto3" json:"request_type,omitempty"` // 请求类型 0-rpc 请求 1-http 请求 2-web 请求
QueryMode uint32 `protobuf:"varint,3,opt,name=query_mode,json=queryMode,proto3" json:"query_mode,omitempty"` // 查询模式 0-单执行单元(默认)1-多执行单元并行(不含嵌套子查询) 2-复合查询(包含嵌套子查询)
RequestId uint64 `protobuf:"varint,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // 请求唯一id
TraceId string `protobuf:"bytes,5,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"` // trace_id
Timestamp uint64 `protobuf:"varint,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // 请求时间戳(精确到毫秒)
Timeout uint32 `protobuf:"varint,7,opt,name=timeout,proto3" json:"timeout,omitempty"` // 请求超时时间,单位ms
Caller string `protobuf:"bytes,8,opt,name=caller,proto3" json:"caller,omitempty"` // 主调服务的名称 app.server.service
Callee string `protobuf:"bytes,9,opt,name=callee,proto3" json:"callee,omitempty"` // 被调服务的路由名称 app.server.service/func
Appid uint64 `protobuf:"varint,10,opt,name=appid,proto3" json:"appid,omitempty"` // appid
Compress uint32 `protobuf:"varint,11,opt,name=compress,proto3" json:"compress,omitempty"` // 是否压缩 1-压缩;0-不压缩(默认)
Ip string `protobuf:"bytes,12,opt,name=ip,proto3" json:"ip,omitempty"` // ip地址
AuthRand uint32 `protobuf:"varint,13,opt,name=auth_rand,json=authRand,proto3" json:"auth_rand,omitempty"` // 随机生成 0-99999999 的数字,相同 timestamp 不允许出现同样的 ip、auth_rand。为了避免碰撞,0-99999999,单机理论最大支持 1000 亿/秒的并发。
Sign string `protobuf:"bytes,14,opt,name=sign,proto3" json:"sign,omitempty"` // sign 签名,为 md5(appid+secret+version+request_type+query_mode+request_id+trace_id+timestamp+timeout+caller+compress+auth_rand)
Bak string `protobuf:"bytes,15,opt,name=bak,proto3" json:"bak,omitempty"` // 备用
// contains filtered or unexported fields
}
RequestHeader 请求头
func (*RequestHeader) Descriptor
deprecated
func (*RequestHeader) Descriptor() ([]byte, []int)
Deprecated: Use RequestHeader.ProtoReflect.Descriptor instead.
func (*RequestHeader) GetAppid ¶
func (x *RequestHeader) GetAppid() uint64
func (*RequestHeader) GetAuthRand ¶
func (x *RequestHeader) GetAuthRand() uint32
func (*RequestHeader) GetBak ¶
func (x *RequestHeader) GetBak() string
func (*RequestHeader) GetCallee ¶
func (x *RequestHeader) GetCallee() string
func (*RequestHeader) GetCaller ¶
func (x *RequestHeader) GetCaller() string
func (*RequestHeader) GetCompress ¶
func (x *RequestHeader) GetCompress() uint32
func (*RequestHeader) GetIp ¶
func (x *RequestHeader) GetIp() string
func (*RequestHeader) GetQueryMode ¶
func (x *RequestHeader) GetQueryMode() uint32
func (*RequestHeader) GetRequestId ¶
func (x *RequestHeader) GetRequestId() uint64
func (*RequestHeader) GetRequestType ¶
func (x *RequestHeader) GetRequestType() uint32
func (*RequestHeader) GetSign ¶
func (x *RequestHeader) GetSign() string
func (*RequestHeader) GetTimeout ¶
func (x *RequestHeader) GetTimeout() uint32
func (*RequestHeader) GetTimestamp ¶
func (x *RequestHeader) GetTimestamp() uint64
func (*RequestHeader) GetTraceId ¶
func (x *RequestHeader) GetTraceId() string
func (*RequestHeader) GetVersion ¶
func (x *RequestHeader) GetVersion() uint32
func (*RequestHeader) ProtoMessage ¶
func (*RequestHeader) ProtoMessage()
func (*RequestHeader) ProtoReflect ¶
func (x *RequestHeader) ProtoReflect() protoreflect.Message
func (*RequestHeader) Reset ¶
func (x *RequestHeader) Reset()
func (*RequestHeader) String ¶
func (x *RequestHeader) String() string
type ResponseHeader ¶
type ResponseHeader struct {
Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` // 客户端版本
QueryMode uint32 `protobuf:"varint,2,opt,name=query_mode,json=queryMode,proto3" json:"query_mode,omitempty"` // 查询模式 0-单执行单元(默认)1-多执行单元并行(不含嵌套子查询) 2-复合查询(包含嵌套子查询)
RequestId uint64 `protobuf:"varint,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // 请求唯一id
Compress uint32 `protobuf:"varint,4,opt,name=compress,proto3" json:"compress,omitempty"` // 返回结果是否压缩 1-压缩;0-不压缩(默认)
Err *Error `protobuf:"bytes,5,opt,name=err,proto3" json:"err,omitempty"` // 返回错误
IsNil bool `protobuf:"varint,6,opt,name=is_nil,json=isNil,proto3" json:"is_nil,omitempty"` // 返回是否为空(针对单执行单元)
RspErrs map[string]*Error `` // 错误返回(针对多执行单元并发)
/* 170-byte string literal not displayed */
RspNils map[string]bool `` // 是否为空返回(针对多执行单元并发)
/* 171-byte string literal not displayed */
// contains filtered or unexported fields
}
ResponseHeader 响应头
func (*ResponseHeader) Descriptor
deprecated
func (*ResponseHeader) Descriptor() ([]byte, []int)
Deprecated: Use ResponseHeader.ProtoReflect.Descriptor instead.
func (*ResponseHeader) GetCompress ¶
func (x *ResponseHeader) GetCompress() uint32
func (*ResponseHeader) GetErr ¶
func (x *ResponseHeader) GetErr() *Error
func (*ResponseHeader) GetIsNil ¶
func (x *ResponseHeader) GetIsNil() bool
func (*ResponseHeader) GetQueryMode ¶
func (x *ResponseHeader) GetQueryMode() uint32
func (*ResponseHeader) GetRequestId ¶
func (x *ResponseHeader) GetRequestId() uint64
func (*ResponseHeader) GetRspErrs ¶
func (x *ResponseHeader) GetRspErrs() map[string]*Error
func (*ResponseHeader) GetRspNils ¶
func (x *ResponseHeader) GetRspNils() map[string]bool
func (*ResponseHeader) GetVersion ¶
func (x *ResponseHeader) GetVersion() uint32
func (*ResponseHeader) ProtoMessage ¶
func (*ResponseHeader) ProtoMessage()
func (*ResponseHeader) ProtoReflect ¶
func (x *ResponseHeader) ProtoReflect() protoreflect.Message
func (*ResponseHeader) Reset ¶
func (x *ResponseHeader) Reset()
func (*ResponseHeader) String ¶
func (x *ResponseHeader) String() string
type Scroll ¶
type Scroll struct {
Info string `json:"info,omitempty"` // 滚动查询信息,如时间
ID string `json:"id,omitempty"` // 滚动 id
}
Scroll 滚动查询
type Unit ¶
type Unit struct {
// query base info
Name string `json:"name,omitempty"` // name
Op string `json:"op,omitempty"` // operation
Shard []string `json:"shard,omitempty"` // 分片、分表、分库
// 结构化查询共有
Column []string `json:"column,omitempty"` // columns
Where map[string]interface{} `json:"where,omitempty"` // query condition
Order []string `json:"order,omitempty"` // order by
Page int `json:"page,omitempty"` // request pages. when page > 0, the request is returned in pagination.
Size int `json:"size,omitempty"` // size per page
From uint64 `json:"from,omitempty"` // offset
// 数据更新
Data map[string]interface{} `json:"data,omitempty"` // add/update one data
Datas []map[string]interface{} `json:"datas,omitempty"` // batch add/update data
DataType map[string]int8 `json:"data_type,omitempty"` // 数据类型(主要用于 clickhouse,对于数据类型有强依赖),请求 json 不区分 int8、int16、int32、int64 等,只有 Number 类型,bytes 也会被当成 string 处理。
// group by
Group []string `json:"group,omitempty"` // group by
Having map[string]interface{} `json:"having,omitempty"` // group by filter condition
// for databases such as elastic ...
Type string `json:"type,omitempty"` // type, such as elastic`s type, it can be customized before v7, and unified as _doc after v7
Scroll *Scroll `json:"scroll,omitempty"` // scroll info
// for databases such as redis ...
Prefix string `json:"prefix,omitempty"` // prefix, It is strongly recommended to bring it to facilitate finer-grained summary statistics, otherwise the statistical granularity can only be cmd ,such as GET、SET、HGET ...
Key string `json:"key,omitempty"` // key
Args []interface{} `json:"args,omitempty"` // args 参数的数据类型存于 data_type
// bytes 字节流
Bytes []byte `json:"bytes,omitempty"`
// params 与数据库特性相关的附加参数,例如 mysql 的join,redis 的 WITHSCORES,以及 elastic 的 refresh、collapse、runtime_mappings、track_total_hits 等等。
Params map[string]interface{} `json:"params,omitempty"`
// 直接送 Query 语句,需要拥有库的 表权限、或 root 权限。具体参数为 args
Query string `json:"query,omitempty"`
// Extend 扩展信息,作用于插件
Extend map[string]interface{} `json:"extend,omitempty"`
Sub []*Unit `json:"sub,omitempty"` // 子查询
Trans []*Unit `json:"trans,omitempty"` // 事务,该事务下的所有 Unit 必须同时成功或失败(注意:仅适合支持事务的数据库回滚,如果数据库不支持事务,则操作不会回滚)
}
Unit 查询单元
Click to show internal directories.
Click to hide internal directories.