Rust, CLI uygulamaları oluşturmak için en iyi seçeneklerden biridir. Temel bir kripto veri toplayıcı uygulaması oluşturarak başlayın.
CLI (Komut Satırı Arayüzleri), yazılım geliştirme ve sistem yönetiminde çok önemlidir. CLI'ler, uygun olan bilgisayarlarla etkileşimde bulunmak için kolaylaştırılmış bir yol sunan hafif metin tabanlı programlardır. otomasyon, komut dosyası oluşturma ve uzaktan kumanda dahil olmak üzere birden çok kullanım durumu için geliştiriciler ve uzman kullanıcılar için yönetim.
Rust, CLI uygulamaları oluşturmak için popülerlik kazanıyor. Rust, güçlü CLI uygulamaları oluşturmak için yararlanabileceğiniz, bellek ayırma ve iş parçacığı güvenliği üzerinde ayrıntılı denetim, bellek güvenliği, eşzamanlılık ve paralellik gibi güçlü özellikler sağlar. Rust ayrıca, CLI uygulamaları oluşturmak için özel olarak uyarlanmış, gelişen bir kitaplık ve çerçeve ekosistemine sahiptir.
Rust ile CLI Uygulamaları Oluşturmaya Başlarken
Aşağıdakiler de dahil olmak üzere Rust'ta CLI uygulamaları oluşturmak için birkaç üçüncü taraf paketi vardır.
alkış, Yapı Opt, Ve termion kasalar. Bu kasalar, modern CLI araçları geliştirmek için ihtiyaç duyduğunuz özellikleri sağlar.Ayrıca, Rust std:: ortam ortam değişkenleri ve komut satırı bağımsız değişkenleriyle çalışmak için işlevsellik sağlayan standart kitaplığında sandık. bu std:: ortam sandık, ortamlarla platformdan bağımsız bir şekilde çalışmak için çeşitli yöntemler ve türler sunar.
Kullanmak std:: ortam sandık, Rust programlarınız çevre ile etkileşime girebilir ve davranışlarını ortama göre uyarlayabilir. ortam değişkenleri, komut satırı bağımsız değişkenleri ve geçerli çalışma dizin.
CLI uygulamanız için Rust'ın paket yönetim aracı Cargo ile yeni bir Rust projesi oluşturmak için bu komutu çalıştırın:
kargo yeni crypto_cli
Coinmarketcap API'sini çağıran bir CLI uygulamasının nasıl oluşturulacağını öğreneceksiniz. İstek yapmak için özellikler sağlayan sandık Rust'ta HTTP istekleri.
aç senin Kargo.toml dosyalayın ve ekleyin istek batı Ve tokio projenizin bağımlılıklarına uygun kasalar:
[bağımlılıklar]
tokio = { sürüm = "1.15", özellikler = ["tam dolu"] }
istek batı = { sürüm = "0.11", özellikler = ["json"] }
serde = { sürüm = "1.0", özellikler = ["türetmek"] }
serde_json = "1.0"
bu tokio sandık, birlikte çalışan eşzamansız bir çalışma zamanı kitaplığıdır. istek batı eşzamansız programlama için. bu serde Ve serde_json sandıklar yardımcı olur JSON serileştirme ve seri kaldırma.
İçinde kaynak Rust projenizin klasörünü oluşturun api.rs Ve cli.rs API çağrısını ve CLI işlevlerini uygulayacağınız dosyalar.
src/api.rs src/cli.rs'ye dokunun
Komut, projenizin çalışma dizininde istenen dosyaları oluşturmalıdır. Endişelerin ayrılması için işlevleri belirlenmiş dosyalarına yazdıktan sonra, işlevleri ana işlevinde ana.rs dosya.
Reqwest ile CoinMarketCap'in API'sine API İstekleri Yapma
CoinMarketCap'in API'si kripto para birimi verilerine erişmenizi ve uygulamalarına entegre etmenizi sağlar. API, listelemeler, piyasa fiyatları, bilgi alışverişi, dönüştürme araçları, geçmiş veriler ve meta veriler için uç noktalar sağlar.
Oturum açtığınızda CoinMarketCap hesabına kaydolabilir ve API anahtarınızı Coinmarketcap'in geliştirici sayfasından alabilirsiniz. Ayrıntılı talimatlar ve hız limitleri için belgelere de başvurabilirsiniz.
Bir API isteğinde bulunmak için /v2/cryptocurrency/quotes/latest Bir veya daha fazla kripto para birimi için en son piyasa fiyatını döndüren uç nokta, API'den çıkarmak istediğiniz veriler için yapılar ve Serde'nin türetme özelliği ile öznitelikleri belirtin.
Ardından, uç noktaya bir API talep edebilir ve serde_json Rust veri türlerinde daha kolay işlemler için JSON verilerinin serisini kaldırmak için sandık.
Burada yapı tanımı bu alır İD, isim, sembol, Ve alıntı belirtilen kripto para birimlerinin verileri
#[türet (Debug, Serialize, Serialize)]
yapıApi Yanıtı {
veri: veri,
}#[türet (Debug, Serialize, Serialize)]
yapıVeri {
// Veri nesnesinden ihtiyacınız olan alanları ekleyin
#[serde (yeniden adlandır = "1")]
crypto_1: Kripto para birimi,#[serde (yeniden adlandır = "2")]
crypto_2: Kripto para birimi,#[serde (yeniden adlandır = "3")]
crypto_3: Kripto para birimi,#[serde (yeniden adlandır = "4")]
crypto_4: Kripto para birimi,
}#[türet (Debug, Serialize, Serialize)]
yapıKripto para {
İD: u32,
isim: Sicim,
sembol: Sicim,
// Gerektiğinde diğer alanları ekleyin
alıntı: Alıntı,
}#[türet (Debug, Serialize, Serialize)]
yapıAlıntı {
USD: Teklif Ayrıntıları,
}
#[türet (Debug, Serialize, Serialize)]
yapıAlıntı Ayrıntıları {
fiyat: f64,
hacim_24h: f64,
// Gerektiğinde diğer alanları ekleyin
}
API, ihtiyaç duyduğunuzdan daha fazla olabilecek verileri döndürür, ancak serde sandık, tam olarak ihtiyacınız olan verileri yukarıda gösterildiği gibi belirtebilirsiniz.
Artık gerekli parametrelerle GET isteği yapan yeni bir client oluşturarak Reqwest ile uç nokta talebinde bulunabilirsiniz.
kullanmak talep:: İstemci;
kullanmak istek:: Hata;birahanezaman uyumsuzfnkripto() -> Sonuç {
izin vermek müşteri = İstemci:: yeni();izin vermek url = " https://pro-api.coinmarketcap.com/v2/cryptocurrency/quotes/latest";
izin vermek parametreler = [
("İD", "1,2,3,4"),
("dönüştürmek", "AMERİKAN DOLARI"), // Piyasa değerlerini USD'ye çevir
];izin vermek yanıt = client.get (url)
.başlık("X-CMC_PRO_API_KEY", "API ANAHTARI BURADA")
.query(¶ms)
.Göndermek().beklemek?;
;izin vermek sonuç: ApiResponse = serde_json:: from_str(&*response.text().beklemek?;).aç();
yazdır!("{:#?}", sonuç);
Tamam(())
}
bu kripto işlevi, uç noktayı talep eden, tokio etkin, eşzamansız bir işlevdir. client.get ile bir istemci örneği oluşturduktan sonra işlev Müşteri:: yeni yöntem.
bu başlık API anahtarınızı alan istek oluşturucu örneğindeki işlev çağrısı, sorgu fonksiyon parametreleri alır ve Göndermek fonksiyon isteği gönderir.
bu kripto işlev, JSON yanıtını serde_json's ile seri hale getirir from_str bir JSON dizesini alan yöntem.
Son olarak, kripto işlevi, seri durumdan çıkarma işleminin sonucunu konsola yazdırır.
Rust'ta CLI Argümanlarını Alma
senin içinde cli.rs dosyasını içe aktaracaksınız kripto işlevi api.rs Dosyayı çalıştırın ve kullanıcı, projeyi çalıştırırken argüman olarak "crypto" yazarsa işlevi çağırın. kargo koşusu emretmek.
Şu şekilde kullanabilirsiniz: std:: ortam argümanı komut satırından alma işlevi:
kullanmak std:: ortam;
kullanmak sandık:: api:: kripto;birahanezaman uyumsuzfnklişe() {
izin vermek bağımsız değişkenler: Vec<Sicim> = env:: args().collect();
eğer args.len() > 1 && argümanlar[1] == "kripto" {
kripto().beklemek.unwrap();
} başka {
yazdır!("Geçersiz komut. Kullanım: kargo çalıştırması kripto");
}
}
bu klişe işlevi, komut satırından tüm bağımsız değişkenleri alır. env:: args().collect() işlev. bu eğer-başka ifade, ek bir bağımsız değişken olup olmadığını kontrol eder, "kripto". koşul true olarak değerlendirilirse, klişe işlev çağırır kripto işlev; Aksi takdirde, klişe işlev konsola bir dize yazdırır.
Son olarak, arayabilirsiniz klişe işlevi ana işlev. eklemelisiniz #[tokio:: ana] öznitelik beri ana işlevler Rust'ta eşzamansız olamaz.
mod API;
mod cli;
kullanmak sandık:: cli:: cli;
#[tokio:: ana]
zaman uyumsuzfnana() {
cli().beklemek;
}
bu ana işlev çağırır klişe ile işlev beklemek sonuçlanıncaya kadar yürütmeyi askıya alan işlev Gelecek hazır.
İşte çalıştırmanın sonucu kargo koşusu kripto emretmek:
Rust'ta Sofistike Web Uygulamaları Oluşturabilirsiniz
Rust, birçok kullanım durumu ve uygulaması olan çok yönlü bir programlama dilidir. Rust'ta web uygulamaları oluşturmak için Actix, Rocket ve Warp gibi üçüncü taraf web çerçevelerinden yararlanabilirsiniz. Bu çerçeveler, modern web uygulamaları oluşturmak için gereken işlevlerin çoğunu sağlar.