Exemplu de cerere REST API folosind bash

Ultima actualizare: 31 martie 2025

Introducere

Implementarea unei interfețe Kraken REST API folosind Bourne Again shell (bash) și unele comenzi asociate (openssl, base64, xxd etc.) poate fi o soluție convenabilă și eficientă pentru interacțiunea cu piețele Kraken (deși nu ar fi cea mai rapidă implementare în comparație cu codul compilat).

Bash și comenzile necesare sunt disponibile (preinstalate) pe majoritatea sistemelor UNIX, Linux și macOS și pot fi instalate cu ușurință pe Windows și alte sisteme, astfel încât tot software-ul necesar este disponibil fără a utiliza instrumente sau biblioteci API terțe suplimentare.

Folosind un editor de text simplu (chiar și un editor clasic precum vi) și câteva linii de cod, este posibil să accesați atât datele publice de piață, cât și datele private ale contului, precum și să plasați/anulați ordine pe piețele Kraken.

Exemplu de cod

Următorul cod prezintă o implementare de cod bash pentru apelarea endpoint-ului 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

iar codul corespunzător poate fi, de asemenea, descărcat (ca fișier kapi_bash.sh).

Utilizare/Dezvoltare ulterioară

Pentru a vă recupera propriile solduri de cont, cheia API exemplu ar trebui înlocuită cu o cheie API din propriul cont Kraken, iar endpoint-urile API suplimentare pot fi activate pur și simplu prin modificarea variabilei api_endpoint și a variabilei api_post (dacă este necesar).

Ai nevoie de mai mult ajutor?