Вступление:
В этой статье мы узнаем, как отслеживать цену и рыночную капитализацию биткоина (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:
- Сначала создайте новый проект Rust:
cargo new btc_tracker
cd btc_tracke
- Добавьте необходимые зависимости в ваш файл 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),
}
}
Объяснение кода:
- Мы импортируем необходимые модули и объявляем структуры MarketData и ApiResponse для десериализации ответа JSON из Coingecko API.
- Функция
fetch_btc_data
- это асинхронная функция, которая отправляет запрос GET на конечную точку Coingecko API для получения данных Bitcoin. Мы используем ключевое словоawait
, чтобы дождаться ответа и десериализовать его с помощьюserde
. - Мы выводим текущую цену и рыночную капитализацию биткоина на консоль.
- В функции main мы используем макрос
tokio::main
для запуска асинхронной функцииfetch_btc_data
.
Запуск кода:
Чтобы запустить код, выполните следующую команду в вашем терминале:
cargo run
Если все настроено правильно, вы должны увидеть текущую цену BTC и рыночную капитализацию, выведенную на вашу консоль.
Вывод:
Поздравляю! Вы успешно создали трекер цен на BTC и рыночной капитализации в режиме реального времени, используя Rust и Coingecko API. Теперь вы можете добавлять новые функции и отслеживать любые альткоины, используя бесплатный или платный CoinGecko API.