Skip to main content

ecapi-sdk (Python)

ECAPI 的 Python SDK,面向当前重构后的 REST/OpenAPI 契约。当前门面由 openapi.json 生成并覆盖其中的全部接口,并随包提供 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.5.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ecapi-sdk 3.5.3
File Size Uploaded
ecapi_sdk-3.5.3.tar.gz 23.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ecapi-sdk 3.5.3
File Interpreter ABI Platform
ecapi_sdk-3.5.3-py3-none-any.whl Python 3 none any Details

Total release size: 45.3 kB

Release files / ecapi_sdk-3.5.3.tar.gz

Download URL ecapi_sdk-3.5.3.tar.gz
Size 23.5 kB
Tags Source
SHA-256 checksum
How to use checksums
69b96e83761e37593462d7719a32e48ea2fbd46e8a1b72d3f1c089ae7a603839
BLAKE2b-256 checksum
How to use checksums
1ef25a4d0f653d033a75cab274562e785f6b5d9a8e46fec469694ae4c6ed6f3c
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.5.3-py3-none-any.whl

Download URL ecapi_sdk-3.5.3-py3-none-any.whl
Size 21.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6fdc87a32f41dfa0ddf96d54bfedb7f9c1a44f0e560c0fda617f6776efe1c611
BLAKE2b-256 checksum
How to use checksums
c2782617f49cffaa66066c4d26852d63c5809b13f88137bab8a1ac154d2feb61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

3.7.2

2 release files

3.7.1

2 release files

3.7.0

2 release files

3.6.0

2 release files

3.5.4

2 release files

This release

3.5.3 This release

2 release files

3.5.2

2 release files

3.5.1

2 release files

3.5.0

2 release files

3.4.7

2 release files

3.4.6

2 release files

3.4.5

2 release files

3.4.4

2 release files

3.4.3

2 release files

3.4.2

2 release files

3.4.1

2 release files

3.4.0

2 release files

3.3.19

2 release files

3.3.18

2 release files

3.3.17

2 release files

3.3.16

2 release files

3.3.15

2 release files

3.3.14

2 release files

3.3.13

2 release files

3.3.12

2 release files

3.3.11

2 release files

3.3.10

2 release files

3.3.9

2 release files

3.3.8

2 release files

3.3.6

2 release files

3.3.5

2 release files

3.3.4

2 release files

3.3.3

2 release files

3.3.2

2 release files

3.3.1

2 release files

3.3.0

2 release files

3.2.9

2 release files

3.2.8

2 release files

3.2.7

2 release files

3.2.6

2 release files

3.2.5

2 release files

3.2.4

2 release files

3.2.3

2 release files

3.2.2

2 release files

3.2.1

2 release files

3.1.5

2 release files

3.1.4

2 release files

3.1.3

2 release files

3.1.2

2 release files

3.1.1

2 release files

3.1.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page