6个版本
0.2.3 | 2024年8月9日 |
---|---|
0.2.2 | 2023年12月16日 |
0.2.0 | 2022年10月26日 |
0.1.2 | 2022年6月2日 |
0.1.1 | 2022年5月28日 |
#82 in 身份验证
每月下载量 122
78KB
917 行
powerplatform-dataverse-service-client
连接到Microsoft Dataverse环境的非官方Rust客户端
请在此处报告任何问题: https://github.com/MortenRoemer/powerplatform-dataverse-service-client/issues
计划中(⏳)和已完成(✅)的功能
- ⏳ 通用OAuth2身份验证
- ✅ 客户端/密钥认证
- ✅ 基本CRUD操作
- ✅ 批量操作
- ⏳ 自定义操作调用
- ⏳ 高级ODATA查询选项
- ⏳ 导航属性处理
创建客户端并连接到dataverse环境
以下是一个创建客户端并通过客户端/密钥方法进行身份验证的示例
let client_id = String::from("<clientid>");
let client_secret = String::from("<clientsecret>");
let client = Client::with_client_secret_auth(
"https://instance.crm.dynamics.com/",
"12345678-1234-1234-1234-123456789012",
client_id,
client_secret,
);
其中第一个参数是组织URL,第二个参数是客户端需要对其进行身份验证的租户ID
从dataverse读取联系人记录
要从dataverse中读取记录,您首先需要创建一个结构体并为其实现ReadableEntity
#[derive(Deserialize)]
struct Contact {
contactid: Uuid,
firstname: String,
lastname: String,
}
impl ReadEntity for Contact {}
impl Select for Contact {
fn get_columns() -> &'static [&'static str] {
&["contactid", "firstname", "lastname"]
}
}
Select trait筛选出与结构体相关的检索列
然后您可以使用客户端中的retrieve方法检索它
let contact: Contact = client
.retrieve(
&ReferenceStruct::new(
"contacts",
Uuid::parse_str("12345678-1234-1234-1234-123456789012").unwrap()
)
)
.await
.unwrap();
将联系人记录写入dataverse
要将记录写入dataverse,您需要创建一个结构体并为其实现WritableEntity
#[derive(Serialize)]
struct Contact {
contactid: Uuid,
firstname: String,
lastname: String,
}
impl WriteEntity for Contact {}
impl Reference for Contact {
fn get_reference(&self) -> ReferenceStruct {
ReferenceStruct::new(
"contacts",
self.contactid,
)
}
}
其中Reference trait处理将实体转换为dataverse中对其自身的引用
然后您可以使用create方法写入它
let contact = Contact {
contactid: Uuid::parse_str("12345678-1234-1234-1234-123456789012").unwrap(),
firstname: String::from("Testy"),
lastname: String::from("McTestface"),
};
client.create(&contact).await.unwrap();
依赖项
~10–23MB
~328K SLoC