Skip to content

Fenixs8973/yookassa-rs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Yookassa-rs

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);
    },
}

License

MIT Apache

Documentation

not ready yet

About

Wrapper around Yookassa API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Rust 100.0%