#square #api-client #api #web-api #api-wrapper

squareup

Square 开发者 API 的 Rust SDK

21 个稳定版本

20231213.0.2 2024 年 1 月 6 日
2.10.1 2024 年 6 月 22 日
2.9.1 2024 年 4 月 20 日
2.8.0 2024 年 3 月 4 日
0.1.0 2023 年 10 月 30 日

226网页编程

Download history 46/week @ 2024-04-23 15/week @ 2024-05-14 6/week @ 2024-05-21 2/week @ 2024-05-28 22/week @ 2024-06-04 160/week @ 2024-06-18 8/week @ 2024-06-25 15/week @ 2024-07-02 82/week @ 2024-07-23 40/week @ 2024-07-30

122 每月下载量

MIT 许可证

1MB
15K SLoC

Square API 客户端

Square API 客户端在 Square 网页 API 上提供 Rust 封装。

https://github.com/cosm-public/rust-square-api-client-lib/tree/main 在 2024 年 1 月 4 日 fork。

Square API

Square API 允许您安全地接受支付,并将您的应用程序与 Square 的第一方产品生态系统集成。为您自己或数百万 Square 卖家构建功能齐全的商业应用程序。

Square API 参考 按核心业务工作流程组织:接受支付、管理订单、与 Square 点位销售同步商品和库存、创建客户记录、管理业务地点,并允许 Square 卖家使用您的应用程序。

使用方法

设置客户端

客户端可以通过以下方式最简单地实例化

use squareup::{config::Configuration, SquareClient};

// This will default to Sandbox, not Production!!
let client = SquareClient::try_new(Configuration::default()).unwrap();

为了使此功能正常工作,需要设置一个名为 SQUARE_API_TOKEN 的环境变量,其值为您的 API 令牌字符串...否则,在发起实时调用时将出现 API 错误。您还可以在配置客户端时手动将 API 令牌添加到 Headers 中。仅在本地脚本中进行此操作(如果那样的话)。

还需要设置 SQUARE_ENVIRONMENT 环境变量为 SANDBOXPRODUCTION。如果没有设置值,则默认为 SANDBOX

其他默认值包括 2024-06-04 API 版本、基本 URI 为 /v2、超时为 60 秒以及没有 HTTP 客户端重试。

以下显示了生产的标准配置

    // Create square client config
    let config = Configuration {
        environment: Environment::Production, // OPTIONAL if you set the SQUARE_ENVIRONMENT env var
        http_client_config: HttpClientConfiguration::default(),
        base_uri: BaseUri::Default,
    };

Square 客户端可以通过此处显示的属性进行一些自定义

use squareup::api::{CustomersApi, OrdersApi};
use squareup::config::BaseUri;
use squareup::config::{Configuration, Environment};
use squareup::http::client::HttpClientConfiguration;
use squareup::SquareClient;
use std::time::Duration;
use squareup::http::client::RetryConfiguration;
use squareup::http::Headers;

let mut headers = Headers::default();
headers.set_user_agent("Some User Agent String");
headers.insert("X_SOME_CUSTOM_HEADER", "custom_header_value");
// Not recommended to set auth header, only do this if you are running local scripts
headers.set_authorization("YOUR_API_TOKEN".to_string());

let config = Configuration {
    environment: Environment::Production,
    http_client_config: HttpClientConfiguration {
        timeout: 30,
        user_agent: String::from("Some User Agent String"), // will override what's in headers
        default_headers: headers,
        retry_configuration: RetryConfiguration {
            retries_count: 1,
            min_retry_interval: Duration::from_secs(1),
            max_retry_interval: Duration::from_secs(30 * 60),
            base: 3,
        },
    },
    base_uri: BaseUri::Default,
};

// Create square client
let square_client: SquareClient = SquareClient::try_new(config).unwrap();

使用客户端

一旦有了 SquareClient,将客户端注入到各种 API 中。这有助于安全,不允许您的应用程序一次性访问所有 API。

例如,要访问客户 API 和订单 API,您将

use squareup::api::{CustomersApi, OrdersApi};
use squareup::config::Configuration;
use squareup::SquareClient;

let square_client: SquareClient = SquareClient::try_new(Configuration::default()).unwrap();
let customers_api: CustomersApi = CustomersApi::new(square_client.clone());
let orders_api: OrdersApi = OrdersApi::new(square_client.clone());

进展

意图是将此包中的所有 Square API 封装起来。到目前为止,它包括一些更常用的功能。

已实现的功能

到目前为止,我们在 Rust Square API 客户端中封装了以下 API

待实现

本软件包的后续版本将实现以下 API

依赖项

~7-19MB
~283K SLoC