Bash kullanarak örnek REST API isteği

Son güncelleme: 31 Mar 2025

Giriş

Kraken REST API arayüzünü Bourne Again shell (bash) ve bazı ilişkili komutlar (openssl, base64, xxd vb.) kullanarak uygulamak, Kraken'in piyasalarıyla etkileşim kurmak için uygun ve verimli bir çözüm olabilir (derlenmiş koda kıyasla en hızlı uygulama olmasa da).

Bash ve gerekli komutlar çoğu UNIX, Linux ve macOS sisteminde kolayca bulunur (önceden yüklenmiştir) ve Windows ve diğer sistemlere kolayca kurulabilir, bu nedenle gerekli tüm yazılımlar ek üçüncü taraf API araçları veya kütüphaneleri kullanılmadan mevcuttur.

Basit bir metin düzenleyici (hatta vi gibi eski tarz bir düzenleyici) ve birkaç satır kod kullanarak hem genel piyasa verilerine hem de özel hesap verilerine erişmek ve Kraken'in piyasalarında emir vermek/iptal etmek mümkündür.

Örnek Kod

Aşağıdaki kod, REST API Bakiye uç noktasını çağırmak için bir bash kodu uygulamasını göstermektedir:

#!/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

ve eşleşen kod indirilebilir (kapi_bash.sh dosyası olarak).

Daha Fazla Kullanım/Geliştirme

Kendi hesap bakiyelerinizi almak için örnek API anahtarı, kendi Kraken hesabınızdan bir API anahtarıyla değiştirilmeli ve ek API uç noktaları, api_endpoint değişkeni ve api_post değişkeni (gerekirse) değiştirilerek kolayca etkinleştirilebilir.

Daha fazla yardıma mı ihtiyacınız var?