21 个稳定版本
20231213.0.2 |
|
---|---|
2.10.1 | 2024 年 6 月 22 日 |
2.9.1 | 2024 年 4 月 20 日 |
2.8.0 | 2024 年 3 月 4 日 |
0.1.0 |
|
226 在 网页编程 中
122 每月下载量
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
环境变量为 SANDBOX
或 PRODUCTION
。如果没有设置值,则默认为 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