ecapi-sdk (Python)
ECAPI 的 Python SDK,面向当前重构后的 REST/OpenAPI 契约。当前门面由 openapi.json 生成并覆盖全部 160 个接口,并随包提供 py.typed 与 client.pyi,方便 IDE 显示参数、必填字段和 docstring。
安装
pip install ecapi-sdk
仓库内更新 SDK 文档和类型提示:
python3 sdk/generate_sdk_api_reference.py
python3 -m py_compile sdk/python/ecapi-sdk/src/ecapi_sdk/client.py
快速开始
from ecapi_sdk import ECAPIClient, ECAPIError, is_ecapi_error
client = ECAPIClient(
base_url="https://api.easecation.net",
auth={"type": "apiKey", "apiKey": "ec_xxx"},
)
try:
me = client.user.get_me()
player = client.player.get_info({"displayName": "Steve"})
wallet = client.player.get_wallet("player-ecid")
except ECAPIError as error:
print(error.status, error.code, error.request_id, str(error))
raise
认证方式
client.set_api_key("ec_xxx")
client.set_bearer_token("iam-jwt-token")
client.set_app_session_token("app-session-token")
client.clear_auth()
也可以在单次请求中传入 auth=... 覆盖默认认证;传 auth=None 表示本次不发送认证。
认证来自 IAM callback、短期 token 或其它动态来源时,可以使用 auth_provider,SDK 会在每次请求前调用它:
client = ECAPIClient(
auth_provider=lambda: {"type": "apiKey", "apiKey": get_current_api_key()},
)
如果 auth_provider 返回 awaitable,且当前没有正在运行的 event loop,同步客户端会用 asyncio.run() 等待它;在已有 event loop 中请使用同步 provider 或在业务层先解析认证。
类型提示与文档
client.py与client.pyi均从 OpenAPI 生成,query/body 会生成TypedDict,字段必填性来自 OpenAPI。API_REFERENCE.md会列出方法、接口说明、权限、HTTP 方法、路径、必填参数和可选参数。ECAPIError会提取服务端错误 envelope 中的code、request_id、details、field和用户友好的message。
常用调用
client.system.get_health()
client.system.get_liveness()
client.system.get_readiness()
client.player.search_ecid({"search": "Steve"})
client.player.cutoff_leaderboard.get_leaderboard({"game": "bedwar"})
client.punish.create({
"type": "WARNING",
"ecid": "player-ecid",
"source": "console",
"reason": "测试警告",
})
未封装或临时接口可使用统一入口:
client.request("GET", "/players/info", query={"displayName": "Steve"})
契约说明
本 SDK 不提供旧路径兼容别名,所有方法都调用新的 REST/OpenAPI 路径。OpenAPI 是路径、参数和权限说明的唯一事实源,完整方法请查看 API_REFERENCE.md。
Release files for ecapi-sdk 3.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ecapi_sdk-3.4.1.tar.gz | 21.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ecapi_sdk-3.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 42.1 kB
Release files / ecapi_sdk-3.4.1.tar.gz
| Download URL | ecapi_sdk-3.4.1.tar.gz |
|---|---|
| Size | 21.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
22e9e8e77d11afd982fa3d3535ba6e5698481ef3a2c4cca03ecdec66af9683ce
|
|
BLAKE2b-256 checksum How to use checksums |
160ba7023a0f0dad567f9823ae7b9e9a2dce07fb613920edb1851a6eeb17ec23
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / ecapi_sdk-3.4.1-py3-none-any.whl
| Download URL | ecapi_sdk-3.4.1-py3-none-any.whl |
|---|---|
| Size | 20.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1e6976f4bd96ea7bbd4baae5bb52fe59b5a847f69c3a9519c4904b51bfcaba1a
|
|
BLAKE2b-256 checksum How to use checksums |
15ec143d60db9baca5db5de85cc2bb3fa6ce5230607b626ac3b5c14583e1dd28
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|