Перейти к содержанию

DCryptoTools - Отслеживание цены BTC и рыночной капитализации в режиме реального времени с помощью Rust и Coingecko API

Posted on:27 марта 2023 г. at 11:11

Example Dynamic OG Image link

Вступление:

В этой статье мы узнаем, как отслеживать цену и рыночную капитализацию биткоина (BTC) в режиме реального времени с помощью Rust и Coingecko API. Rust, язык системного программирования, разработан для обеспечения производительности и безопасности. В сочетании с мощным API Coingecko у вас будет надежный и эффективный инструмент для отслеживания постоянно меняющегося крипторынка.

В DCryptoTools создали базовый веб-сайт для отслеживания цены от 1 BTC до 1 миллиона долларов США, а также добавили временную шкалу в соответствии с твитом Баладжи.

Чтобы создать свой собственный код для отслеживания цены BTC с использованием API и языка Rust, вам потребуется базовое понимание Rust и Coingecko API.

Если вы новичок в Rust, я рекомендую ознакомиться с официальной документацией: https://doc.rust-lang.org/book/.

Если вы новичок в Coingecko API, вы можете ознакомиться с документацией здесь: https://www.coingecko.com/api/documentation.

Настройка проекта Rust:

  1. Сначала создайте новый проект Rust:
cargo new btc_tracker
cd btc_tracke
  1. Добавьте необходимые зависимости в ваш файл Cargo.toml:
[dependencies]
reqwest = { version = "0.11", features = ["json"] }
tokio = { version = "1", features = ["full"] }
serde = "1.0"
serde_json = "1.0"

Создайте новый файл с именем main.rs в каталоге src и напишите следующий код:

// Импорт требуемых модулей
use reqwest::Error;
use serde::Deserialize;
use tokio;

// Определение структуры для десериализации ответа JSON
#[derive(Deserialize, Debug)]
struct MarketData {
    current_price: f64,
    market_cap: u64,
}

// Определение структуры для десериализации ответа JSON
#[derive(Deserialize, Debug)]
struct ApiResponse {
    market_data: MarketData,
}

// Основная функция для получения цены BTC и рыночного предела
async fn fetch_btc_data() -> Result<(), Error> {
    let url = "https://api.coingecko.com/api/v3/coins/bitcoin?localization=false&tickers=false&community_data=false&developer_data=false&sparkline=false";

    let resp = reqwest::get(url).await?;
    let data: ApiResponse = resp.json().await?;

    println!("BTC Price: ${:.2}", data.market_data.current_price);
    println!("BTC Market Cap: ${}", data.market_data.market_cap);

    Ok(())
}

// Основная функция для выполнения асинхронной функции fetch_btc_data
#[tokio::main]
async fn main() {
    match fetch_btc_data().await {
        Ok(_) => println!("Data fetched successfully!"),
        Err(e) => println!("Error: {}", e),
    }
}

Объяснение кода:

  1. Мы импортируем необходимые модули и объявляем структуры MarketData и ApiResponse для десериализации ответа JSON из Coingecko API.
  2. Функция fetch_btc_data - это асинхронная функция, которая отправляет запрос GET на конечную точку Coingecko API для получения данных Bitcoin. Мы используем ключевое слово await, чтобы дождаться ответа и десериализовать его с помощью serde.
  3. Мы выводим текущую цену и рыночную капитализацию биткоина на консоль.
  4. В функции main мы используем макрос tokio::main для запуска асинхронной функции fetch_btc_data.

Запуск кода:

Чтобы запустить код, выполните следующую команду в вашем терминале:

cargo run

Если все настроено правильно, вы должны увидеть текущую цену BTC и рыночную капитализацию, выведенную на вашу консоль.

Вывод:

Поздравляю! Вы успешно создали трекер цен на BTC и рыночной капитализации в режиме реального времени, используя Rust и Coingecko API. Теперь вы можете добавлять новые функции и отслеживать любые альткоины, используя бесплатный или платный CoinGecko API.