#api-client #php #request #espo-crm

espocrm-rs

EspoCRM PHP API 客户端的 Rust 实现

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

MIT/Apache

32KB
651

espocrm-rs

EspoCRM PHP API 客户端的 Rust 实现。您可以在这里找到此客户端。

有关如何使用此包的信息,请参阅docs.rs

依赖项

请参阅crates.io

许可证

espocrm-rs 在 MIT 许可证和 Apache 许可证(版本 2.0)的条款下分发。

请参阅LICENSE-APACHELICENSE-MITCOPYRIGHT以获取详细信息。


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