बैश का उपयोग करके REST API अनुरोध का उदाहरण

अंतिम अपडेट: 31 मार्च 2025

परिचय

बॉर्न अगेन शेल (बैश) और कुछ संबंधित कमांड (ओपनएसएसएल, बेस64, एक्सएक्सडी, आदि) का उपयोग करके Kraken REST API इंटरफ़ेस को लागू करना Kraken के बाज़ारों के साथ इंटरैक्ट करने के लिए एक सुविधाजनक और कुशल समाधान हो सकता है (हालांकि यह संकलित कोड की तुलना में सबसे तेज़ कार्यान्वयन नहीं होगा)।

बैश और आवश्यक कमांड अधिकांश UNIX, Linux और macOS सिस्टम पर आसानी से उपलब्ध (पहले से इंस्टॉल) होते हैं, और Windows और अन्य सिस्टम पर आसानी से इंस्टॉल किए जा सकते हैं, इसलिए सभी आवश्यक सॉफ़्टवेयर बिना किसी अतिरिक्त तृतीय-पक्ष API टूल या लाइब्रेरी का उपयोग किए उपलब्ध हैं।

एक साधारण टेक्स्ट एडिटर (यहां तक कि vi जैसे पुराने स्कूल एडिटर) और कुछ लाइनों के कोड का उपयोग करके, सार्वजनिक बाज़ार डेटा और निजी खाता डेटा दोनों तक पहुंचना संभव है, और Kraken के बाज़ारों पर ऑर्डर देना/रद्द करना भी संभव है।

उदाहरण कोड

निम्नलिखित कोड REST API Balance एंडपॉइंट को कॉल करने के लिए एक बैश कोड कार्यान्वयन दिखाता है:

#!/usr/bin/env bash

# API public/private keys copied from account management web site

api_key='gxTXpC4Ag/N0QPKlYnRhL1qVB2G/HZV1eB2drl7eOXga30dEKoB+EUMs'
api_private='62kRfRX7BI8G8T/jl7clnZ+vSfJt7YmQN23JQkJfHCE6oxecJX4fN4i2RitmRhyFzfJ4efKy2yCo4H068rfv0A=='

# API variables (URL, endpoint, nonce, etc.)

api_host='https://api.kraken.com'
api_endpoint='/0/private/Balance'
api_nonce=`date +%s`
api_post="nonce=$api_nonce"

# Authentication algorithm (SHA256 and HMAC SHA512)

api_private_hex=`echo -n $api_private base64 -d xxd -p tr -d "\n"`
echo -n $api_endpoint > kapi_bash.bin
echo -n $api_nonce$api_post openssl dgst -sha256 -binary >> kapi_bash.bin
api_sign=`cat kapi_bash.bin openssl dgst -binary -sha512 -mac HMAC -macopt hexkey:$api_private_hex base64`

# HTTP request (POST)

curl --header "API-Key: $api_key" --header "API-Sign: $api_sign" --data $api_post $api_host$api_endpoint

और मिलान करने वाला कोड डाउनलोड (एक kapi_bash.sh फ़ाइल के रूप में) भी किया जा सकता है।

आगे उपयोग/विकास

अपने स्वयं के खाता शेष को पुनः प्राप्त करने के लिए, उदाहरण API कुंजी को आपके अपने Kraken खाते से एक API कुंजी से बदला जाना चाहिए, और api_endpoint वेरिएबल और api_post वेरिएबल (यदि आवश्यक हो) को संशोधित करके अतिरिक्त API एंडपॉइंट्स को आसानी से सक्षम किया जा सकता है।

क्या आपको और मदद चाहिए?