#api-client #e-commerce #client #lightspeed #api-bindings #api-error #api

lightspeed_api

Rust 库,用于 Lightspeed 电子商务(C-Series)API

5 个版本

0.1.4 2024年6月26日
0.1.3 2024年6月26日
0.1.2 2024年6月25日
0.1.1 2024年6月25日
0.1.0 2024年6月25日

#1#lightspeed

Download history 364/week @ 2024-06-25 3/week @ 2024-07-02

97 每月下载量

MIT 许可证

17KB
330

Lightspeed API Rust 库

本库为 Lightspeed 电子商务(C-Series)API 提供了 Rust 接口。它允许您轻松地将 Lightspeed 强大的电子商务功能集成到您的 Rust 应用程序中。

功能

  • 简单直观的 API 客户端
  • 使用 Tokio 进行异步操作
  • 全面的错误处理
  • 支持所有主要 Lightspeed API 端点
  • 易于扩展以适应特定用例

安装

将其添加到您的 Cargo.toml

[dependencies]
lightspeed_api = { git = "https://github.com/NickTacke/lightspeed-api-rust.git" }

快速入门

以下是一个简单的示例以供您开始

use lightspeed_api::{LightspeedClient, AccountResource};
use std::error::Error;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let client = LightspeedClient::new("live", "your_api_key", "your_api_secret", "en");
    let account = AccountResource::new(&client);
    
    let account_info = account.get().await?;
    println!("Account info: {:?}", account_info);

    Ok(())
}

使用

初始化客户端

首先,使用您的 Lightspeed API 凭据创建 LightspeedClient 实例

let client = LightspeedClient::new("live", "your_api_key", "your_api_secret", "en");

处理资源

每个 API 资源(例如,产品、订单、客户)都有自己的结构。以下是一个使用 ProductResource 的示例

use lightspeed_api::{LightspeedClient, ProductResource};
use serde_json::json;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let client = LightspeedClient::new("live", "your_api_key", "your_api_secret", "en");
    let products = ProductResource::new(&client);

    // Create a new product
    let new_product = json!({
        "title": "New Product",
        "description": "This is a new product",
        "price": 19.99
    });
    let created_product = products.create(&new_product).await?;

    // Get a product
    let product = products.get("product_id").await?;

    // Update a product
    let update_data = json!({"price": 24.99});
    let updated_product = products.update("product_id", &update_data).await?;

    // Delete a product
    let deleted_response = products.delete("product_id").await?;

    Ok(())
}

可用资源

  • AccountResource
  • ProductResource
  • OrderResource
  • CustomerResource
  • 即将推出!

错误处理

本库使用自定义的 LightspeedApiError 来处理与 API 相关的错误。您可以在代码中捕获和处理这些错误

match result {
    Ok(data) => println!("Success: {:?}", data),
    Err(e) => {
        if let Some(api_error) = e.downcast_ref::<LightspeedApiError>() {
            println!("API Error: {} (Status: {})", api_error.message, api_error.status_code);
        } else {
            println!("Other error: {}", e);
        }
    }
}

许可证

本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。

免责声明

本库与 Lightspeed 无官方关联或认可。使用风险自担。

依赖关系

~6–18MB
~267K SLoC