Crates.io | square-api-client |
lib.rs | square-api-client |
version | 0.1.9 |
source | src |
created_at | 2022-09-29 18:07:03.642171 |
updated_at | 2022-12-14 23:52:17.073082 |
description | Rust wrapper for the Square web API |
homepage | https://github.com/cosm-eng/rust-square-api-client-lib |
repository | https://github.com/cosm-eng/rust-square-api-client-lib |
max_upload_size | |
id | 676825 |
size | 765,098 |
Square API Client provides a Rust wrapper on top of the Square web APIs.
Square APIs enable you to accept payments securely and integrate your app with Square’s first party product ecosystem. Build full-featured business apps for yourself or millions of Square sellers.
The Square API Reference is organized around core business workflows: taking payments, managing orders, syncing items and inventory with Square Point of Sale, creating customer records, managing business locations, and enabling Square sellers to use your app.
The client is instantiated most simply with
use square_api_client::{config::Configuration, SquareClient};
let client = SquareClient::try_new(Configuration::default()).unwrap();
For this to work, it's necessary to set an environment variable with the name of SQUARE_API_TOKEN
and the value of your API Token string... otherwise, you'll get API errors when making live calls.
Other default values are Sandbox
for the Square environment, 2022-02-16
API version, a base URI
of /v2
, a timeout of 60 seconds and no HTTP Client retries.
The Square client can be customized a bit via the properties shown here:
use square_api_client::{
config::{Configuration, Environment},
http::{client::{HttpClientConfiguration, RetryConfiguration}, Headers},
};
use std::time::Duration;
let mut headers = Headers::default();
headers.set_user_agent("Some User Agent String");
headers.insert("X_SOME_CUSTOM_HEADER", "custom_header_value");
let client = SquareClient::try_new(Configuration {
environment: Environment::Production,
square_version: String::from("2022-09-21"),
http_client_config: HttpClientConfiguration {
timeout: 30,
user_agent: String::from("Some User Agent String"),
default_headers: headers,
retry_configuration: RetryConfiguration {
retries_count: 1,
min_retry_interval: Duration::from_secs(1),
max_retry_interval: Duration::from_secs(30 * 60),
backoff_exponent: 3,
},
},
access_token: String::from("Bearer MY_ACCESS_TOKEN"),
base_uri: String::from("/v2"),
}).unwrap();
Once you have a SquareClient
instance access to the various APIs is through its properties.
For example, to access the Payments API, you would:
use square_api_client::{
config::Configuration,
models::CreatePaymentRequest,
SquareClient,
};
let client = SquareClient::try_new(Configuration::default()).unwrap();
let request = CreatePaymentRequest::default(); // this actually has many fields to fill
let response = client.payments_api.create_payment(request).await.unwrap();
The intent is to wrap all of the Square APIs in this crate. So far, it includes some of the more commonly required features.
So far, we have the following APIs wrapped in the Rust Square API Client:
Future versions of this crate will implement the following APIs: