Skip to main content

ECAPI SDK for Python

Project description

ecapi-sdk (Python)

ECAPI 的 Python SDK,面向当前重构后的 REST/OpenAPI 契约。当前门面由 openapi.json 生成并覆盖全部 160 个接口,并随包提供 py.typedclient.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.pyclient.pyi 均从 OpenAPI 生成,query/body 会生成 TypedDict,字段必填性来自 OpenAPI。
  • API_REFERENCE.md 会列出方法、接口说明、权限、HTTP 方法、路径、必填参数和可选参数。
  • ECAPIError 会提取服务端错误 envelope 中的 coderequest_iddetailsfield 和用户友好的 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ecapi_sdk-3.3.5.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ecapi_sdk-3.3.5-py3-none-any.whl (19.4 kB view details)

Uploaded Python 3

File details

Details for the file ecapi_sdk-3.3.5.tar.gz.

File metadata

  • Download URL: ecapi_sdk-3.3.5.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for ecapi_sdk-3.3.5.tar.gz
Algorithm Hash digest
SHA256 d4568e23f42c168eced7379dfbee5bbc6567fc231c181e6d2b1ec62dda6c7227
MD5 bd76c0c7778b911560288c0ef5515ae9
BLAKE2b-256 f905916a568e585ba79c1799fa7c7b4c2249c96aec9bb7057ce79078f3f6e433

See more details on using hashes here.

File details

Details for the file ecapi_sdk-3.3.5-py3-none-any.whl.

File metadata

  • Download URL: ecapi_sdk-3.3.5-py3-none-any.whl
  • Upload date:
  • Size: 19.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for ecapi_sdk-3.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 d28a0848d8df9000a4f4e0e8f32f79a7471260621b5b3ca9f2be9b2e94f1acd5
MD5 8393cd9fb1b3b59e222ed6a2e2274f62
BLAKE2b-256 8eed91c32bd0e70149c9dce5b8992120786f07c8981198c7c65f2b51bd851080

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page