Przykładowe żądanie REST API przy użyciu bash

Ostatnia aktualizacja: 31 marca 2025

Wprowadzenie

Wdrożenie interfejsu Kraken REST API przy użyciu Bourne Again shell (bash) i niektórych powiązanych poleceń (openssl, base64, xxd itp.) może być wygodnym i wydajnym rozwiązaniem do interakcji z rynkami Kraken (chociaż nie byłoby to najszybsze wdrożenie w porównaniu do skompilowanego kodu).

Bash i wymagane polecenia są łatwo dostępne (preinstalowane) w większości systemów UNIX, Linux i macOS, a także można je łatwo zainstalować w systemach Windows i innych, dzięki czemu całe wymagane oprogramowanie jest dostępne bez użycia dodatkowych narzędzi API lub bibliotek stron trzecich.

Korzystając ze zwykłego edytora tekstu (nawet starego edytora, takiego jak vi) i kilku linii kodu, można uzyskać dostęp zarówno do publicznych danych rynkowych, jak i prywatnych danych konta, a także składać/anulować zlecenia na rynkach Kraken.

Przykładowy kod

Poniższy kod przedstawia implementację kodu bash do wywoływania punktu końcowego REST API Balance:

#!/usr/bin/env bash

# Klucze publiczne/prywatne API skopiowane ze strony zarządzania kontem

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

# Zmienne API (URL, punkt końcowy, nonce itp.)

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

# Algorytm uwierzytelniania (SHA256 i 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`

# Żądanie HTTP (POST)

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

a pasujący kod można również pobrać (jako plik kapi_bash.sh).

Dalsze użycie/rozwój

Aby pobrać salda własnego konta, przykładowy klucz API należy zastąpić kluczem API z własnego konta Kraken, a dodatkowe punkty końcowe API można włączyć, po prostu modyfikując zmienną api_endpoint i zmienną api_post (w razie potrzeby).

Potrzebujesz więcej pomocy?