Developer Interface¶
长桥 OpenSDK 提供了 HTTP 客户端和 Websocket 客户端的实现。
Error¶
此 SDK 所抛出的异常
- class longbridge.error.ApiError¶
通用错误
- Parameters
code (int) – 错误码,由 SDK 定义
message (str) – 错误描述
- class longbridge.error.HttpError¶
HTTP 请求服务端处理失败
- Parameters
status (int) – 响应状态码
code (int) – 返回的错误码,由服务端定义
headers (dict) – 返回的响应头
message (str) – 错误描述
detail (str) – 错误详细原因
trace_id (str) – 当前请求 ID
- class longbridge.error.RequestError¶
客户端请求失败
- Parameters
code (int) – 错误码,由 SDK 定义
message (str) – 错误描述
Http Client¶
HTTP 客户端实现了加签逻辑,提供了 GET/POST/PUT/DELETE 方法,正常响应返回 ApiResponse 对象,异常响应抛出 ApiError 异常。
- class longbridge.http.HttpClient¶
HTTP Client 实现
- __init__(auth, config=Config(base_url='https://openapi.lbkrs.com', env=<Env.PROD: 3>, headers={}, language='zh-CN'))¶
初始化 Http Client
- Parameters
auth (longbridge.http.Auth) – 认证信息
config (longbridge.http.Config) – 请求配置
- delete(path, query=None, options=None)¶
发起 DELETE 请求
- Parameters
path (str) – 请求的相对路径
query (Optional[Dict[str, Any]]) – 请求额外的 parameter
options (Optional[longbridge.http.RequestOption]) – 请求额外的定制信息
- Returns
响应结果
- Return type
- Raises
ApiError – 通用错误
RequestError – 本地发起请求失败
HttpError – 请求响应非 2xx
- get(path, query=None, options=None)¶
发起 GET 请求
- Parameters
path (str) – 请求的相对路径
query (Optional[Dict[str, Any]]) – 请求额外的 parameter
options (Optional[longbridge.http.RequestOption]) – 请求额外的定制信息
- Returns
响应结果
- Return type
- Raises
ApiError – 通用错误
RequestError – 本地发起请求失败
HttpError – 请求响应非 2xx
- post(path, payload=None, options=None)¶
发起 POST 请求
- Parameters
path (str) – 请求的相对路径
payload (Optional[Dict[str, Any]]) – 请求体,将以 JSON 的方式发送给服务器
options (Optional[longbridge.http.RequestOption]) – 请求额外的定制信息
- Returns
响应结果
- Return type
- Raises
ApiError – 通用错误
RequestError – 本地发起请求失败
HttpError – 请求响应非 2xx
- put(path, payload=None, options=None)¶
发起 PUT 请求
- Parameters
path (str) – 请求的相对路径
payload (Optional[Dict[str, Any]]) – 请求体,将以 JSON 的方式发送给服务器
options (Optional[longbridge.http.RequestOption]) – 请求额外的定制信息
- Returns
响应结果
- Return type
- Raises
ApiError – 通用错误
RequestError – 本地发起请求失败
HttpError – 请求响应非 2xx
- set_header(key, value)¶
更新请求头
如果 value 为空,则移除对应的 key
- set_language(language)¶
重置语言
- set_url(base_url)¶
重置 base_url
- class longbridge.http.Auth(app_key, app_secret, access_token=None)¶
认证凭证
- Parameters
app_key (str) – App Key
app_secret (str) – App Key 对应的密钥
access_token (Optional[str]) – 用户凭证
- class longbridge.http.Config(base_url='https://openapi.lbkrs.com', env=Env.PROD, headers=<factory>, language='zh-CN')¶
Http 配置信息
- Parameters
base_url (str) – Open API 服务地址
language (str) – Accept-Language header 对应的值
headers (dict) – 所有请求携带的额外请求 Header
- class longbridge.http.ApiResponse¶
请求返回的响应
- Parameters
headers (dict) – 响应头
data (dict) – 响应体
- class longbridge.http.RequestOption(headers, meta, timeout)¶
额外的请求配置
- Parameters
headers (dict) – 单次请求额外的请求头
timeout (int) – 请求超时时间,默认 30 s,设置为 0 则不超时;超时返回
RequestError
Websocket Client¶
Websocket 客户端实现了对连接的自动保活,提供了 send_request 方法,及对 push 数据 / state 变更的回调。
- class longbridge.ws.WsClient¶
WS Client 实现
- __init__(url, http, callback)¶
初始化 WS Client
- Parameters
url (str) – 连接服务端最低值
http (longbridge.http.HttpClient) – HTTP 客户端,为了获取 token,自动重连
callback (longbridge.ws.WsCallback) – 用户提供的状态和推送回调函数
- close()¶
关闭当前连接,不再尝试重连
- ready_state()¶
当前连接状态
- Returns
连接状态
- Return type
- reconnect()¶
从关闭状态重新连接
- send_request(command, payload, timeout=None)¶
发送请求
- Parameters
command (int) – 请求命令,请参阅 pb 文件
payload (bytes) – protobuf 序列化后的请求体,请参阅 pb 文件
timeout (Optional[datetime.timedelta]) – 超时时间
- Returns
返回的 protobuf 数据,类型为 command 对应的 response type,请参阅 pb 文件
- Raises
WsError – 服务器响应错误
ApiError – 通用错误,如发请求时连接不在 OPEN 状态
- Return type
bytes
- class longbridge.ws.WsCallback¶
WS 回调函数,用户需自行实现如下两个方法:
on_push: 接收 command(int) 和 payload(bytes)
on_state: 接收 state(ReadyState)
- class longbridge.ws.ReadyState¶
连接状态
OPENING: 开始连接(用户不会收到,首次启动 SDK 自动等待到可用状况)
OPEN: 连接正常,可以接收和发送数据
RECONNECTING: 连接异常,自动重连中
CLOSED: 连接用户主动关闭,不再重连