跳到主要内容

Python 入门

依赖与准备

  • 依赖:requests
pip install requests

示例位于 sdk/python/,核心文件:

  • TokenProvider.py:客户端凭证模式获取 Token,并做简单缓存
  • DataServiceClient.py:封装 querymutation 请求
  • CRUDGenericRecordExampleV2.py:完整 CRUD 操作示例

运行示例

确保设置环境变量(可按需调整):

export KC_TOKEN_URL=http://localhost:8180/realms/07c5b6ff/protocol/openid-connect/token
export KC_CLIENT_ID=myservice5
export KC_CLIENT_SECRET=2rSFDy7AKcN3st3rtbZUH3PQ01Y0sPqH
export TENANT_ID=07c5b6ff
export BASE_URL=http://localhost:8080
export ENTITY_NAME=customers
export PK_FIELD=id

python sdk/python/CRUDGenericRecordExampleV2.py

代码要点(节选)

以下片段来自 CRUDGenericRecordExampleV2.py,展示列表、条件查询、创建、主键查询、更新、删除、条件更新/删除与 Upsert:

tp = ClientCredentialsTokenProvider(token_url, client_id, client_secret)
ds = DataServiceClient(base_url + "/data", tenant_id, tp)

lst = list_records(ds, entity_name, limit=10, offset=0)
filtered = list_filtered(ds, entity_name, limit=10, offset=0)

created = create_record(ds, entity_name, {
"name": "RecordUser",
"email": "record.user@example.com",
"age": 25,
})
created_one = created[0] if created else None

if created_one and pk_field in created_one:
idv = created_one.get(pk_field)
by_id = get_by_id(ds, entity_name, pk_field, idv)
updated = update_by_id(ds, entity_name, pk_field, idv, {"email": "record.user+updated@example.com"})
deleted = delete_by_id(ds, entity_name, pk_field, idv)

updated_where = update_where(
ds,
entity_name,
{"op": "and", "conditions": [{"field": "email", "op": "like", "value": "%example.com"}]},
{"age": 27},
)
deleted_where = delete_where(
ds,
entity_name,
{"op": "and", "conditions": [{"field": "name", "op": "like", "value": "%TempUser"}]},
)

upserted = upsert_record(ds, entity_name, ["email"], {
"name": "RecordUpsert",
"email": "record.upsert@example.com",
"age": 31,
})

异常处理与返回结构兼容性详见示例源码中的 api_dataDataServiceClient._post_json