Simple wrapper around yookassa api
Usage:
use yookassa_rs::prelude::*;
use yookassa_rs::models::*;
#[tokio::main]
async fn main() {
let shop_id = "1045131";
let secret_key = "test_1HtqeKIGTQan9ODGjHdfIXTaTv1U3yTU0JDiqUbsGj4";
let client = YookassaClientBuilder::default()
.auth(BasicAuth::new(secret_key, shop_id))
.build();
let resp = client
.request(Method::GET, "/payments")
.send::<ResponsePayments>()
.await;
println!("{:?}", resp);
}How to add to own project?
[dependencies]
yookassa_rs = "0.2.0"Библиотека предоставляет детальную информацию об ошибках через тип YooKassaError:
use yookassa_rs::prelude::*;
match client.request(Method::POST, "/payments").send().await {
Ok(payment) => println!("Платеж создан: {:?}", payment),
Err(YooKassaError::Transport(e)) => {
// Ошибка транспорта (сеть, таймауты)
eprintln!("Ошибка сети: {} -> {}", e.url, e.source);
if let Some(status) = e.status {
eprintln!("HTTP статус: {}", status);
}
},
Err(YooKassaError::Api(e)) => {
// Ошибка API ЮKassa
eprintln!("Ошибка API: код={:?}, описание={:?}", e.code, e.description);
eprintln!("HTTP статус: {:?}", e.status);
eprintln!("URL: {:?}", e.url);
},
Err(YooKassaError::ParseError { source, body, url }) => {
// Ошибка парсинга JSON
eprintln!("Ошибка парсинга JSON от {}: {}", url, source);
eprintln!("Тело ответа: {}", body);
},
}not ready yet