7 个版本

0.1.16 2023年5月30日
0.1.15 2023年5月29日
0.1.13 2023年4月25日

#domain 中排名 68

每月下载量 26

MIT 许可证

30KB
762 行代码(不包括注释)

SBXCloud Rust SDK

这是 SBXCloud 的 Rust SDK。它还在开发中,尚未准备好用于生产。

所需环境变量

SBX_HOST: SBXCloud 实例的主机,默认为 https://sbxcloud.com SBX_TOKEN: 用于身份验证的令牌(必需) SBX_APP_KEY: 用于身份验证的应用密钥(可选) SBX_DOMAIN: 数据存储的 SBXCloud 域上下文(必需),必须是一个正数

实现的功能

  • 身份验证
  • QueryBuilder
  • load_all (QueryBuilder) 将加载查询的所有结果
  • 通过 fetch 获取相关记录

代码示例

该库要求您使用异步运行时,因此您需要使用异步运行时才能使用此库。下面的示例使用 tokio。

use sbx_cloud::models::{QueryBuilder, SBXClient};
use sbx_cloud::services::load_all;


#[derive(Serialize, Deserialize, Debug, Clone)]
struct Purchase {
    #[serde(rename(serialize = "_KET", deserialize = "_KEY"))]
    key: String,
    consecutive: u32,
}

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    // use the default SBXClient
    let sbx = SBXClient::default();

    // Search for for all the items on the purchase table
    let q = QueryBuilder::new("purchase", sbx.domain)
        // fetch the associated customer
        .fetch(vec![String::from("customer")])
        // where the packing date of the order is equal to a given date
        .and_equals("packing_date", date)
        // and the checkout is not null
        .and_is_not_null("checkout")
        // compile the query
        .build();

    // perform the query and load all the results
    match load_all::<Purchase>(&sbx, &q).await {
        Ok((purchases, fetch)) => {
            println!("Found {} purchases", purchases.len());

            // print out the purchases
            for purchase in purchases.iter() {
                println!("Purchase: {}", purchase.key);
            }
            
            println!("Found {} fetches", fetch.len());

            Ok(())
        }
        Err(e) => {
            println!("Error: {}", e);
            Err(e)
        }
    }
}

依赖项

~4–16MB
~227K SLoC