7 个不稳定版本
0.4.1 | 2023年1月25日 |
---|---|
0.4.0 | 2022年9月13日 |
0.3.1 | 2022年1月17日 |
0.3.0 | 2021年5月17日 |
0.1.0 | 2021年5月10日 |
#32 在 #php
32KB
651 行
espocrm-rs
EspoCRM PHP API 客户端的 Rust 实现。您可以在这里找到此客户端。
有关如何使用此包的信息,请参阅docs.rs
依赖项
请参阅crates.io
许可证
espocrm-rs
在 MIT 许可证和 Apache 许可证(版本 2.0)的条款下分发。
请参阅LICENSE-APACHE、LICENSE-MIT和COPYRIGHT以获取详细信息。
lib.rs
:
espocrm-rs
espocrm-rs 包提供了一个 EspoCRM API 客户端。此客户端基于 EspoCRM 团队提供的官方 PHP API 客户端。您可以在这里找到此客户端。
入门
要开始使用,您需要提供 EspoCRM 的 URL。您还需要设置您想要与 EspoCRM 进行身份验证的方式。这可以通过以下方式之一完成
- 用户名+密码
- API 密钥
- HMAC(推荐)
以下示例创建了一个具有 HMAC 认证的 EspoApiClient
use espocrm_rs::EspoApiClient;
let client = EspoApiClient::new("https://espocrm.example.com")
.set_api_key("Your API Key here")
.set_secret_key("Your API Secret")
.build();
以下示例创建了一个具有 API 密钥认证的 EspoApiClient
use espocrm_rs::EspoApiClient;
let client = EspoApiClient::new("https://espocrm.example.com")
.set_api_key("Your API Key here")
.build();
以下示例创建了一个具有用户名+密码认证的 EspoApiClient。 强烈不建议使用此方法!
use espocrm_rs::EspoApiClient;
let client = EspoApiClient::new("https://espocrm.example.com")
.set_username("Your Username here")
.set_password("Your Password here")
.build();
执行 GET 请求
要执行请求,您需要了解以下几点
- 要使用的请求方法
- 请求要执行的操作
- 可选,请求所需的数据
大多数这些内容都在 EspoCRM API 文档中进行了很好的说明这里
use espocrm_rs::{EspoApiClient, Params, Where, FilterType, Value, NoGeneric, Method};
let params = Params::default()
.set_offset(0)
.set_where(vec![
Where {
r#type: FilterType::IsTrue,
attribute: "exampleField".to_string(),
value: None
},
Where {
r#type: FilterType::ArrayAnyOf,
attribute: "exampleField2".to_string(),
value: Some(Value::array(vec![
Value::str("a"),
Value::str("b"),
Value::str("c")
]))
}
])
.build();
let client = EspoApiClient::new("https://espocrm.example.com")
.set_secret_key("Your Secret Key")
.set_api_key("Your api key")
.build();
let result = client.request::<NoGeneric, &str>(Method::Get, "Contact", Some(params), None);
执行 POST、PUT 或 DELETE 请求
这些操作的工作原理类似。它们将数据序列化为 json,使用 Serde 的 serialize 特性
use espocrm_rs::{EspoApiClient, Method};
use serde::Serialize;
#[derive(Serialize, Clone)]
struct MyData {
some_value: String,
some_other_value: i64
}
let client = EspoApiClient::new("https://espocrm.example.com")
.set_secret_key("Your Secret Key")
.set_api_key("Your api key")
.build();
let data = MyData {
some_value: "value".to_string(),
some_other_value: 10
};
let result = client.request(Method::Post, "Contact", None, Some(data));
依赖项
~4–18MB
~236K SLoC