A rozsda az egyik legjobb választás a CLI alkalmazások építéséhez. Kezdje el egy alapvető kriptográfiai adatlekérő alkalmazás létrehozásával.

A CLI (Command Line Interfaces) kulcsfontosságú a szoftverfejlesztésben és a rendszeradminisztrációban. A CLI-k könnyű szöveg alapú programok, amelyek egyszerű módot kínálnak a kedvező számítógépekkel való interakcióra. fejlesztőknek és nagyfelhasználóknak egyaránt többféle felhasználási esetre, beleértve az automatizálást, a szkriptelést és a távvezérlést adminisztráció.

A Rust egyre népszerűbb a CLI-alkalmazások készítésében. A Rust olyan hatékony funkciókat kínál, mint például a memóriafoglalás és a szálbiztonság, a memóriabiztonság, a párhuzamosság és a párhuzamosság finomszemcsés vezérlése, amelyek segítségével hatékony CLI-alkalmazásokat készíthet. A Rust a kifejezetten a CLI alkalmazások építésére szabott könyvtárak és keretrendszerek virágzó ökoszisztémájával is büszkélkedhet.

Első lépések CLI-alkalmazások készítése Rust segítségével

Számos harmadik féltől származó csomag létezik a CLI-alkalmazások Rustban történő létrehozására, beleértve

instagram viewer
Taps, StructOpt, és Lemondás ládák. Ezek a ládák biztosítják a modern CLI-eszközök fejlesztéséhez szükséges szolgáltatásokat.

Ezenkívül a Rust a std:: env crate szabványos könyvtárában, amely funkcionalitást biztosít a környezeti változókkal és parancssori argumentumokkal való munkavégzéshez. A std:: env A crate számos módszert és típust kínál a környezetekkel való platformfüggetlen munkavégzéshez.

Használni a std:: env láda, a Rust programjai kölcsönhatásba léphetnek a környezettel, és ennek alapján adaptálhatják viselkedésüket különféle tényezők, beleértve a környezeti változókat, a parancssori argumentumokat és az aktuális működést Könyvtár.

Futtassa ezt a parancsot egy új Rust projekt létrehozásához a CLI alkalmazáshoz a Cargo, a Rust csomagkezelő eszközével:

cargo new crypto_cli

Megtanulja, hogyan lehet olyan CLI-alkalmazást készíteni, amely meghívja a Coinmarketcap API-ját a Reqwest láda, amely funkciókat biztosít az elkészítéshez HTTP kérések Rustban.

Nyissa meg Cargo.toml fájlt, és add hozzá a reqwest és tokio ládák a projekt függőségeihez:

[függőségek]
tokio = { verzió = "1.15", funkciók = ["teljes"] }
reqwest = { verzió = "0.11", funkciók = ["json"] }
serde = { verzió = "1.0", funkciók = ["származik"] }
serde_json = "1.0"

A tokio A crate egy aszinkron futásidejű könyvtár, amely együttműködik reqwest aszinkron programozáshoz. A serde és serde_json ládák segítenek JSON szerializálás és deszerializálás.

Ban,-ben src a Rust projekt mappáját, hozza létre api.rs és cli.rs fájlokat, ahol megvalósítja az API-hívást és a CLI-funkciókat.

érintse meg az src/api.rs src/cli.rs elemet

A parancsnak létre kell hoznia a kívánt fájlokat a projekt munkakönyvtárában. Miután beírta a funkciókat a hozzájuk tartozó fájlokban az aggodalmak elkülönítése érdekében, meghívja a függvényeket a fő- funkciót a te fő.rs fájlt.

API-kérések készítése a CoinMarketCap API-jához a Reqwest segítségével

CoinMarketCap API lehetővé teszi a kriptovaluta adatok elérését és integrálását alkalmazásaikba. Az API végpontokat biztosít a listákhoz, piaci árajánlatokhoz, csereinformációkhoz, konverziós eszközökhöz, előzményadatokhoz és metaadatokhoz.

Amikor bejelentkezik, regisztrálhat egy CoinMarketCap-fiókra, és lekérheti API-kulcsát a Coinmarketcap fejlesztői oldalán. A részletes utasításokat és a díjkorlátokat a dokumentációban is megtalálhatja.

API-kérés benyújtásához a /v2/cryptocurrency/quotes/latest végpont, amely egy vagy több kriptovaluta legfrissebb piaci árat adja vissza, akkor meg kell határoznia a struktúrákat az API-ból kinyerni kívánt adatokhoz, és adja meg az attribútumokat Serde származtatott tulajdonságával.

Ezután kérhet API-t a végponthoz, és használhatja a serde_json láda a JSON-adatok deszerializálásához a struktúrába a Rust-adattípusok egyszerűbb műveletei érdekében.

Íme a struktúra meghatározása hogy visszakeresi a id, név, szimbólum, és idézet a megadott kriptovaluták adatait

#[származtatás (hibakeresés, deszerializálás, sorozatosítás)]
structApiResponse {
adatok: adatok,
}

#[származtatás (hibakeresés, deszerializálás, sorozatosítás)]
structAdat {
// A szükséges mezők hozzáadása az adatobjektumból
#[serde (átnevezés = "1")]
crypto_1: kriptovaluta,

#[serde (átnevezés = "2")]
crypto_2: kriptovaluta,

#[serde (átnevezés = "3")]
crypto_3: kriptovaluta,

#[serde (átnevezés = "4")]
crypto_4: kriptovaluta,
}

#[származtatás (hibakeresés, deszerializálás, sorozatosítás)]
structKriptovaluta {
azonosító: u32,
név: Húr,
szimbólum: Húr,
// Szükség szerint adjon hozzá további mezőket
idézet: Idézet,
}

#[származtatás (hibakeresés, deszerializálás, sorozatosítás)]
structIdézet {
USD: QuoteDetails,
}

#[származtatás (hibakeresés, deszerializálás, sorozatosítás)]
structIdézetRészletek {
ár: f64,
volume_24h: f64,
// Szükség szerint adjon hozzá további mezőket
}

Az API a szükségesnél több adatot ad vissza, de a serde láda, pontosan megadhatja a szükséges adatokat, a fent látható módon.

Mostantól kérheti a végpontot a Reqwest segítségével egy új ügyfél létrehozásával, amely a szükséges paraméterekkel elvégzi a GET kérést.

használat reqwest:: Ügyfél;
használat reqwest:: Hiba;

kocsmaasyncfnkripto() -> Eredmény {
hagyja kliens = Ügyfél:: new();

hagyja url = " https://pro-api.coinmarketcap.com/v2/cryptocurrency/quotes/latest";

hagyja params = [
("azonosító", "1,2,3,4"),
("alakítani", "USADOLLÁR"), // Konvertálja a piaci értékeket USD-re
];

hagyja válasz = client.get (url)
.fejléc("X-CMC_PRO_API_KEY", "AZ API KULCS ITT")
.query(&params)
.Küld().várja?;
;

hagyja eredmény: ApiResponse = serde_json:: from_str(&*response.text().várja?;).kibont();

println!("{:#?}", eredmény);
Rendben(())
}

A kripto A függvény egy tokio-engedélyezett aszinkron függvény, amely a végpontot kéri le a client.get függvényt, miután létrehozott egy ügyfélpéldányt a Ügyfél:: új módszer.

A fejléc függvényhívás a kéréskészítő példányon beveszi az API-kulcsot, a lekérdezés függvény veszi a paramétereket, és a Küld funkció elküldi a kérést.

A kripto függvény deszerializálja a JSON-választ a serde_json-val from_str metódus, amely egy JSON karakterláncot vesz fel.

Végül a kripto függvény kiírja a deserializációs művelet eredményét a konzolra.

CLI-argumentumok lekérése Rustban

A tiédben cli.rs fájlt, akkor importálja a kripto funkció a api.rs fájlt, és hívja meg a függvényt, ha a „crypto” felhasználói faj argumentumként a projekt futtatásakor a rakományfuttatás parancs.

Íme, hogyan használhatja a std:: env függvény az argumentum lekéréséhez a parancssorból:

használat std:: env;
használat láda:: api:: kripto;

kocsmaasyncfncli() {
hagyja args: Vec<Húr> = env:: args().collect();

ha args.len() > 1 && args[1] == "kripto" {
crypto().várja.kibont();
} más {
println!("Érvénytelen parancs. Használat: cargo run crypto);
}
}

A cli függvény lekéri az összes argumentumot a parancssorból a env:: args().collect() funkció. A ha más utasítás ellenőrzi, hogy van-e további argumentum, a „crypto”. Ha a feltételes értéke igaz, akkor a cli függvény meghívja a kripto funkció; egyébként a cli függvény egy karakterláncot nyomtat a konzolra.

Végül felhívhatja a cli funkció a fő- funkció. Hozzá kell adni a #[tokio:: fő] attribútum óta fő- a funkciók nem lehetnek aszinkronok a Rustban.

mod api;
mod cli;
használat láda:: cli:: cli;

#[tokio:: fő]
asyncfnfő-() {
cli().várja;
}

A fő- függvény meghívja a cli funkciót a várja függvény, amely felfüggeszti a végrehajtást az a eredményig Jövő készen van.

Íme a futtatás eredménye cargo run kripto parancs:

Kifinomult webalkalmazásokat készíthet Rustban

A Rust egy sokoldalú programozási nyelv, számos felhasználási esettel és alkalmazással. Harmadik fél webes keretrendszereit, például az Actixet, a Rocketet és a Warpot használhatja webalkalmazások készítéséhez a Rustban. Ezek a keretrendszerek biztosítják a modern webalkalmazások létrehozásához szükséges legtöbb funkciót.