सीएलआई अनुप्रयोगों के निर्माण के लिए जंग सबसे अच्छे विकल्पों में से एक है। एक बुनियादी क्रिप्टो डेटा फ़ेचर एप्लिकेशन का निर्माण शुरू करें।

सॉफ्टवेयर विकास और सिस्टम प्रशासन में सीएलआई (कमांड लाइन इंटरफेस) महत्वपूर्ण है। सीएलआई हल्के टेक्स्ट-आधारित प्रोग्राम हैं जो कंप्यूटर के साथ बातचीत करने का एक सुव्यवस्थित तरीका प्रदान करते हैं जो अनुकूल है ऑटोमेशन, स्क्रिप्टिंग और रिमोट सहित कई उपयोग के मामलों के लिए डेवलपर्स और पावर उपयोगकर्ताओं के लिए समान रूप से प्रशासन।

सीएलआई ऐप्स बनाने के लिए रस्ट लोकप्रियता हासिल कर रहा है। रस्ट मेमोरी आवंटन और थ्रेड सुरक्षा, मेमोरी सुरक्षा, समवर्तीता और समानता पर बारीक नियंत्रण जैसी शक्तिशाली सुविधाएँ प्रदान करता है जिनका लाभ आप शक्तिशाली सीएलआई ऐप्स बनाने के लिए उठा सकते हैं। रस्ट सीएलआई अनुप्रयोगों के निर्माण के लिए स्पष्ट रूप से तैयार किए गए पुस्तकालयों और रूपरेखाओं के एक संपन्न पारिस्थितिकी तंत्र का भी दावा करता है।

जंग के साथ सीएलआई ऐप्स बनाना शुरू करना

रस्ट में सीएलआई ऐप्स बनाने के लिए कई तृतीय-पक्ष पैकेज हैं, जिनमें शामिल हैं ताली, स्ट्रक्चरऑप्ट, और टर्मियन टोकरे. ये टोकरे आपको आधुनिक सीएलआई उपकरण विकसित करने के लिए आवश्यक सुविधाएँ प्रदान करते हैं।

instagram viewer

इसके अलावा, रस्ट एक प्रदान करता है std:: env अपने मानक पुस्तकालय में टोकरा जो पर्यावरण चर और कमांड-लाइन तर्कों के साथ काम करने के लिए कार्यक्षमता प्रदान करता है। std:: env क्रेट प्लेटफ़ॉर्म-स्वतंत्र तरीके से वातावरण के साथ काम करने के लिए कई तरीकों और प्रकारों की पेशकश करता है।

का उपयोग std:: env टोकरा, आपके रस्ट प्रोग्राम पर्यावरण के साथ बातचीत कर सकते हैं और उसके आधार पर अपने व्यवहार को अनुकूलित कर सकते हैं पर्यावरण चर, कमांड-लाइन तर्क और वर्तमान कार्यप्रणाली सहित विभिन्न कारक निर्देशिका।

कार्गो, रस्ट के पैकेज प्रबंधन टूल के साथ अपने सीएलआई ऐप के लिए एक नया रस्ट प्रोजेक्ट बनाने के लिए इस कमांड को चलाएँ:

कार्गो नया क्रिप्टो_सीएलआई

आप सीखेंगे कि एक सीएलआई एप्लिकेशन कैसे बनाया जाए जो कॉइनमार्केटकैप के एपीआई को कॉल करता है अनुरोध टोकरा जो बनाने के लिए सुविधाएँ प्रदान करता है रस्ट में HTTP अनुरोध.

अपनी खोलो कार्गो.टीओएमएल फ़ाइल करें और जोड़ें अनुरोध और टोकियो आपके प्रोजेक्ट की निर्भरता के लिए क्रेट्स:

[निर्भरताएं]
टोकियो = {संस्करण = "1.15", विशेषताएँ = ["भरा हुआ"] }
अनुरोध = {संस्करण = "0.11", विशेषताएँ = ["जेएसओएन"] }
सर्दे = {संस्करण = "1.0", विशेषताएँ = ["व्युत्पन्न"] }
serde_json = "1.0"

टोकियो क्रेट एक एसिंक्रोनस रनटाइम लाइब्रेरी है जो इंटरऑपरेट करती है अनुरोध अतुल्यकालिक प्रोग्रामिंग के लिए. सर्दे और serde_json टोकरे मदद करते हैं JSON क्रमांकन और अक्रमांकन.

में स्रोत अपने रस्ट प्रोजेक्ट का फ़ोल्डर बनाएं एपीआई.आरएस और सीएलआई.आरएस फ़ाइलें जहां आप एपीआई कॉल और सीएलआई कार्यक्षमताएं लागू करेंगे।

src/api.rs स्पर्श करें src/cli.rs

कमांड को आपके प्रोजेक्ट की कार्यशील निर्देशिका में वांछित फ़ाइलें बनानी चाहिए। चिंताओं को अलग करने के लिए उनकी निर्दिष्ट फ़ाइलों में कार्यात्मकताओं को लिखने के बाद, आप कार्यों को कॉल करेंगे मुख्य अपने में कार्य करें मुख्य.आरएस फ़ाइल।

Reqwest के साथ CoinMarketCap के एपीआई के लिए एपीआई अनुरोध करना

कॉइनमार्केटकैप की एपीआई आपको क्रिप्टोक्यूरेंसी डेटा को उनके अनुप्रयोगों तक पहुंचने और एकीकृत करने की अनुमति देता है। एपीआई लिस्टिंग, बाजार उद्धरण, विनिमय जानकारी, रूपांतरण उपकरण, ऐतिहासिक डेटा और मेटाडेटा के लिए अंतिम बिंदु प्रदान करता है।

जब आप साइन इन करते हैं, तो आप एक कॉइनमार्केटकैप खाते के लिए साइन अप कर सकते हैं और कॉइनमार्केटकैप के डेवलपर पेज पर अपनी एपीआई कुंजी पुनः प्राप्त कर सकते हैं। आप विस्तृत निर्देशों और दर सीमाओं के लिए दस्तावेज़ का भी संदर्भ ले सकते हैं।

को एपीआई अनुरोध करने के लिए /v2/cryptocurrency/quotes/latest समापन बिंदु जो एक या अधिक क्रिप्टोकरेंसी के लिए नवीनतम बाज़ार उद्धरण लौटाता है, आपको इसे परिभाषित करना होगा उस डेटा के लिए संरचनाएं जिसे आप एपीआई से निकालना चाहते हैं और सर्डे की व्युत्पन्न विशेषता के साथ विशेषताओं को निर्दिष्ट करते हैं।

फिर आप एंडपॉइंट पर एक एपीआई का अनुरोध कर सकते हैं और इसका उपयोग कर सकते हैं serde_json रस्ट डेटा प्रकारों पर आसान संचालन के लिए JSON डेटा को संरचना में डिसेरिएलाइज़ करने के लिए क्रेट।

यहाँ है संरचना परिभाषा जो पुनः प्राप्त करता है पहचान, नाम, प्रतीक, और उद्धरण निर्दिष्ट क्रिप्टोकरेंसी का डेटा

#[व्युत्पन्न (डीबग, डिसेरिएलाइज़, सीरियलाइज़)]
structएपीरिस्पॉन्स {
डेटा: डेटा,
}

#[व्युत्पन्न (डीबग, डिसेरिएलाइज़, सीरियलाइज़)]
structआंकड़े {
// डेटा ऑब्जेक्ट से वे फ़ील्ड जोड़ें जिनकी आपको आवश्यकता है
#[सर्डे (नाम बदलें = "1")]
क्रिप्टो_1: क्रिप्टोकरेंसी,

#[सर्डे (नाम बदलें = "2")]
क्रिप्टो_2: क्रिप्टोकरेंसी,

#[सर्डे (नाम बदलें = "3")]
क्रिप्टो_3: क्रिप्टोकरेंसी,

#[सर्डे (नाम बदलें = "4")]
क्रिप्टो_4: क्रिप्टोकरेंसी,
}

#[व्युत्पन्न (डीबग, डिसेरिएलाइज़, सीरियलाइज़)]
structcryptocurrency {
पहचान: उ32,
नाम: डोरी,
प्रतीक: डोरी,
//आवश्यकतानुसार अन्य फ़ील्ड जोड़ें
उद्धरण: उद्धरण,
}

#[व्युत्पन्न (डीबग, डिसेरिएलाइज़, सीरियलाइज़)]
structउद्धरण {
USD: उद्धरण विवरण,
}

#[व्युत्पन्न (डीबग, डिसेरिएलाइज़, सीरियलाइज़)]
structउद्धरणविवरण {
कीमत: f64,
वॉल्यूम_24 घंटे: f64,
//आवश्यकतानुसार अन्य फ़ील्ड जोड़ें
}

एपीआई वह डेटा लौटाता है जो आपकी आवश्यकता से अधिक हो सकता है, लेकिन इसके साथ सर्दे टोकरा, आप अपनी ज़रूरत का सटीक डेटा निर्दिष्ट कर सकते हैं, जैसा कि ऊपर दिखाया गया है।

अब, आप एक नया क्लाइंट बनाकर रिक्वेस्ट के साथ एंडपॉइंट का अनुरोध कर सकते हैं जो आवश्यक मापदंडों के साथ GET अनुरोध करता है।

उपयोग अनुरोध:: ग्राहक;
उपयोग अनुरोध:: त्रुटि;

पबasyncएफ.एनक्रिप्टो() -> परिणाम {
होने देना क्लाइंट = क्लाइंट:: नया();

होने देना यूआरएल = " https://pro-api.coinmarketcap.com/v2/cryptocurrency/quotes/latest";

होने देना पैरामीटर = [
("पहचान", "1,2,3,4"),
("बदलना", "USD"), // बाजार मूल्यों को USD में बदलें
];

होने देना प्रतिक्रिया = client.get (यूआरएल)
.हेडर("X-CMC_PRO_API_KEY", "आपकी एपीआई कुंजी यहां")
.क्वेरी(&पैराम्स)
।भेजना()।इंतजार?;
;

होने देना परिणाम: ApiResponse = serde_json:: from_str(&*response.text().इंतजार?;).अनरैप();

println!("{:#?}", परिणाम);
ठीक(())
}

क्रिप्टो फ़ंक्शन एक टोकियो-सक्षम एसिंक्रोनस फ़ंक्शन है जो समापन बिंदु का अनुरोध करता है ग्राहक.प्राप्त करें के साथ क्लाइंट इंस्टेंस बनाने के बाद फ़ंक्शन करें ग्राहक:: नया तरीका।

हैडर अनुरोध बिल्डर इंस्टेंस पर फ़ंक्शन कॉल आपकी एपीआई कुंजी में लेता है जिज्ञासा फ़ंक्शन पैरामीटर लेता है, और भेजना फ़ंक्शन अनुरोध भेजता है.

क्रिप्टो फ़ंक्शन serde_json के साथ JSON प्रतिक्रिया को डिसेरिएलाइज़ करता है from_str वह विधि जो JSON स्ट्रिंग लेती है।

अंततः क्रिप्टो फ़ंक्शन डीसेरिएलाइज़ेशन ऑपरेशन के परिणाम को कंसोल पर प्रिंट करता है।

जंग में सीएलआई तर्क पुनः प्राप्त करना

आपके में सीएलआई.आरएस फ़ाइल, आप आयात करेंगे क्रिप्टो से कार्य करें एपीआई.आरएस फ़ाइल करें और फ़ंक्शन को कॉल करें यदि उपयोगकर्ता प्रोजेक्ट को चलाने के तर्क के रूप में "क्रिप्टो" टाइप करता है कार्गो रन आज्ञा।

यहां बताया गया है कि आप इसका उपयोग कैसे कर सकते हैं std:: env कमांड लाइन से तर्क पुनः प्राप्त करने के लिए फ़ंक्शन:

उपयोग एसटीडी:: एनवी;
उपयोग क्रेट:: एपीआई:: क्रिप्टो;

पबasyncएफ.एनसीएलआई() {
होने देना तर्क: वी.ई.सी<डोरी> = env:: args().collect();

अगर args.len() > 1 && तर्क[1] == "क्रिप्टो" {
क्रिप्टो()।इंतजार.अनरैप();
} अन्य {
println!("अवैध आदेश। उपयोग: कार्गो रन क्रिप्टो");
}
}

सीएलआई फ़ंक्शन कमांड लाइन से सभी तर्क पुनर्प्राप्त करता है env:: args().collect() समारोह। यदि नहीं तो यदि कोई अतिरिक्त तर्क, "क्रिप्टो" है तो कथन जाँचता है। यदि सशर्त का मूल्यांकन सत्य है, तो सीएलआई फ़ंक्शन कॉल करता है क्रिप्टो समारोह; अन्यथा सीएलआई फ़ंक्शन कंसोल पर एक स्ट्रिंग प्रिंट करता है।

अंत में, आप कॉल कर सकते हैं सीएलआई में कार्य करें मुख्य समारोह। आपको अवश्य जोड़ना चाहिए #[टोकियो:: मुख्य] तब से विशेषता मुख्य रस्ट में फ़ंक्शन एसिंक्रोनस नहीं हो सकते।

आधुनिक एपीआई;
आधुनिक सीएलआई;
उपयोग टोकरा:: सीएलआई:: सीएलआई;

#[टोकियो:: मुख्य]
asyncएफ.एनमुख्य() {
सीएलआई ()।इंतजार;
}

मुख्य फ़ंक्शन कॉल करता है सीएलआई के साथ कार्य करें इंतजार फ़ंक्शन जो परिणाम आने तक निष्पादन को निलंबित कर देता है भविष्य तैयार हो गया है।

यहाँ चलाने का परिणाम है कार्गो रन क्रिप्टो आज्ञा:

आप रस्ट में परिष्कृत वेब ऐप्स बना सकते हैं

रस्ट एक बहुमुखी प्रोग्रामिंग भाषा है जिसमें कई उपयोग के मामले और अनुप्रयोग हैं। रस्ट में वेब एप्लिकेशन बनाने के लिए आप एक्टिक्स, रॉकेट और वार्प जैसे तृतीय-पक्ष वेब फ्रेमवर्क का लाभ उठा सकते हैं। ये ढाँचे आधुनिक वेब ऐप्स बनाने के लिए आवश्यक अधिकांश कार्यक्षमताएँ प्रदान करते हैं।