Példa REST API kérés bash használatával

Utolsó frissítés: 2025. március 31.

Bevezetés

A Kraken REST API interfész megvalósítása a Bourne Again shell (bash) és néhány kapcsolódó parancs (openssl, base64, xxd stb.) használatával kényelmes és hatékony megoldás lehet a Kraken piacokkal való interakcióra (bár ez nem lenne a leggyorsabb megvalósítás a fordított kódhoz képest).

A bash és a szükséges parancsok könnyen elérhetők (előre telepítve) a legtöbb UNIX, Linux és macOS rendszeren, és könnyen telepíthetők Windows és más rendszerekre is, így minden szükséges szoftver elérhető további harmadik féltől származó API eszközök vagy könyvtárak használata nélkül.

Egy egyszerű szövegszerkesztő (akár egy régi vágású szerkesztő, mint például a vi) és néhány sor kód segítségével hozzáférhető mind a nyilvános piaci adatokhoz, mind a privát számlaadatokhoz, valamint megbízások adhatók/törölhetők a Kraken piacain.

Példakód

Az alábbi kód egy bash kód megvalósítást mutat be a REST API Balance végpontjának meghívására:

#!/usr/bin/env bash

# API nyilvános/privát kulcsok a fiókkezelő webhelyről másolva

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

# API változók (URL, végpont, nonce stb.)

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

# Hitelesítési algoritmus (SHA256 és 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 kérés (POST)

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

és a hozzá tartozó kód letölthető (kapi_bash.sh fájlként).

További felhasználás/fejlesztés

Saját számlaegyenlegeinek lekéréséhez a példa API kulcsot a saját Kraken fiókjából származó API kulccsal kell helyettesíteni, és további API végpontok engedélyezhetők egyszerűen az api_endpoint változó és az api_post változó módosításával (ha szükséges).

További segítségre van szükséged?