ব্যাশ ব্যবহার করে REST API অনুরোধের উদাহরণ

সর্বশেষ আপডেট হয়েছে: ৩১ মার্চ, ২০২৫

ভূমিকা

Kraken REST API ইন্টারফেসটি বোর্ন এগেইন শেল (bash) এবং কিছু সংশ্লিষ্ট কমান্ড (openssl, base64, xxd, ইত্যাদি) ব্যবহার করে প্রয়োগ করা Kraken-এর বাজারগুলির সাথে ইন্টারঅ্যাক্ট করার জন্য একটি সুবিধাজনক এবং কার্যকর সমাধান হতে পারে (যদিও এটি কম্পাইল করা কোডের তুলনায় দ্রুততম বাস্তবায়ন হবে না)।

Bash এবং প্রয়োজনীয় কমান্ডগুলি বেশিরভাগ UNIX, Linux, এবং macOS সিস্টেমে সহজেই উপলব্ধ (পূর্ব-ইনস্টল করা), এবং Windows ও অন্যান্য সিস্টেমে সহজেই ইনস্টল করা যেতে পারে, তাই কোনো অতিরিক্ত তৃতীয় পক্ষের API টুল বা লাইব্রেরি ব্যবহার না করেই সমস্ত প্রয়োজনীয় সফটওয়্যার উপলব্ধ।

একটি সাধারণ টেক্সট এডিটর (এমনকি vi-এর মতো একটি পুরনো এডিটর) এবং কয়েক লাইন কোড ব্যবহার করে, পাবলিক মার্কেট ডেটা এবং ব্যক্তিগত অ্যাকাউন্ট ডেটা উভয়ই অ্যাক্সেস করা সম্ভব, এবং Kraken-এর বাজারে অর্ডার স্থাপন/বাতিল করাও সম্ভব।

উদাহরণ কোড

নিম্নলিখিত কোডটি REST API ব্যালেন্স এন্ডপয়েন্ট কল করার জন্য একটি ব্যাশ কোড বাস্তবায়ন দেখায়:

#!/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 এন্ডপয়েন্টগুলি সক্ষম করা যেতে পারে।

আরও সাহায্যের প্রয়োজন?