DataverseClient 类
用于Microsoft Dataverse作的高级客户端。
此客户端提供一个简单的稳定接口,用于通过 Web API 与 Dataverse 环境交互。 它通过Azure标识处理身份验证,并将 HTTP 操作委托给内部 OData 客户端。
关键功能:
OData CRUD作:创建、读取、更新、删除记录
SQL 查询:通过 Web API
?sql参数执行只读 SQL表元数据:创建、检查和删除自定义表;创建和删除列
文件上传:将文件上传到支持分块的文件列
注释
客户端在首次使用时延迟初始化其内部 OData 客户端,从而允许轻量级构造,而无需立即进行网络调用。
注释
与 Dataverse Web API 通信的所有方法都可能会引发
HttpError 非成功时
HTTP 响应(例如 401、403、404、429、500)。 单个方法
docstrings 仅记录特定于域的异常。
操作组织为命名空间:
client.records– 创建、更新、删除和获取记录(单一查询或分页查询)client.query– 查询和搜索操作client.tables– 表和列元数据管理client.files– 文件上传操作client.dataframe– 用于记录 CRUD 的 pandas 数据帧包装器client.batch– 将多个操作批处理到单个 HTTP 请求中
1.0 GA 中删除了 v0 beta 方法(client.create等 client.query_sql)。 现在调用一个调用时会引发 AttributeError 一个消息,其中命名了 GA 替换和 codemod 命令 - 以前,这些调用只引发一个没有 AttributeError 迁移提示,因此调试半迁移的代码很痛苦。 请参阅_REMOVED_BETA_METHODS。
客户端支持Python的上下文管理器协议进行自动资源清理和 HTTP 连接池:
构造函数
DataverseClient(base_url: str, credential: TokenCredential, config: DataverseConfig | None = None, *, context: OperationContext | None = None)
参数
| 名称 | 说明 |
|---|---|
|
base_url
必需
|
Dataverse 环境 URL,例如 |
|
credential
必需
|
用于身份验证的 Azure 标识凭据。 |
|
config
|
语言、超时和重试的可选配置。 如果未提供,则从中 from_env加载默认值。 默认值: None
|
|
context
必需
|
附加到插件/工具属性的出站 |
仅限关键字的参数
| 名称 | 说明 |
|---|---|
|
context
|
默认值: None
|
示例
建议 – 上下文管理器 (启用 HTTP 连接池):
from azure.identity import InteractiveBrowserCredential
from PowerPlatform.Dataverse.client import DataverseClient
credential = InteractiveBrowserCredential()
with DataverseClient("https://org.crm.dynamics.com", credential) as client:
record_id = client.records.create("account", {"name": "Contoso Ltd"})
client.records.update("account", record_id, {"telephone1": "555-0100"})
# Session closed, caches cleared automatically
手动生命周期:
client = DataverseClient("https://org.crm.dynamics.com", credential)
try:
record_id = client.records.create("account", {"name": "Contoso Ltd"})
finally:
client.close()
方法
| close |
关闭客户端并释放资源。 关闭 HTTP 会话(如果有),清除内部缓存,并将客户端标记为已关闭。 安全呼叫多次。 关闭后,任何操作都会引发 RuntimeError。 使用客户端作为上下文管理器时自动调用。 示例:
|
| flush_cache |
刷新缓存的客户端元数据或状态。 |
close
关闭客户端并释放资源。
关闭 HTTP 会话(如果有),清除内部缓存,并将客户端标记为已关闭。 安全呼叫多次。 关闭后,任何操作都会引发 RuntimeError。
使用客户端作为上下文管理器时自动调用。
示例:
client = DataverseClient(base_url, credential)
try:
client.records.create("account", {"name": "Contoso"})
finally:
client.close()
close() -> None