#sdk #pocketbase #crud #operations #interface #manage #pocket-base

rpocket

使用Rust编写的PocketBase非官方SDK。此SDK提供了与PocketBase API交互的简单易用接口,允许开发者无缝管理他们的pocketbase服务器并执行CRUD操作。

1 个不稳定版本

0.1.0 2023年4月9日

#35#crud

自定义许可证

140KB
3.5K SLoC

rpocket

rpocket是使用Rust编写的PocketBase非官方SDK。此SDK提供了与PocketBase API交互的简单易用接口,允许开发者无缝管理他们的pocketbase服务器并执行CRUD操作。

支持的版本

  • v0.14.x

功能

  • 支持CRUD操作
  • MIT许可
  • 依赖reqwesttower
  • 处于早期开发阶段
  • 未来支持实时服务

安装

要在Rust项目中使用Rust PocketBase SDK,只需将以下行添加到您的Cargo.toml文件中

rpocket = "0.1.0"

用法

以下是一个使用Rust PocketBase SDK从演示API获取数据的简单示例

use std::collections::HashMap;

use rpocket::{
    model::Collection, model::Record, rpocket::PocketBaseClient, service::admin::AdminAuthResponse,
    service::admin::AdminAuthWithPasswordConfig, service::crud::CRUDGetListConfig, PocketBase,
};

#[tokio::main]
async fn main() {
    let mut pocket_base = PocketBase::new("https://pocketbase.io", "en");

    let config = AdminAuthWithPasswordConfig::<HashMap<String, String>> {
        identity: "[email protected]".to_string(),
        password: "123456".to_string(),
        ..Default::default()
    };

    let result = pocket_base
        .admin()
        .auth_with_password::<AdminAuthResponse, HashMap<String, String>>(&config)
        .await;

    match result {
        Ok(response) => {
            println!("response: {:?}", response);
        }
        Err(error) => {
            println!("error: {:?}", error);
        }
    }

    let config = CRUDGetListConfig {
        ..Default::default()
    };

    let result = pocket_base
        .collection()
        .crud()
        .get_list::<Collection>(&config)
        .await;

    match result {
        Ok(response) => {
            println!("response: {:?}", response);
        }
        Err(error) => {
            println!("error: {:?}", error);
        }
    }

    let config = CRUDGetListConfig {
        ..Default::default()
    };

    let result = pocket_base
        .record("users")
        .crud()
        .get_list::<Record>(&config)
        .await;

    match result {
        Ok(response) => {
            println!("response: {:?}", response);
        }
        Err(error) => {
            println!("error: {:?}", error);
        }
    }
}

贡献

该项目处于早期阶段,欢迎贡献!如果您发现任何错误,请打开问题或提交拉取请求。任何有助于改进此SDK的帮助都将受到高度赞赏。

依赖项

~4–16MB
~244K SLoC