Příklad požadavku REST API pomocí bash

Naposledy aktualizováno: 31. března 2025

Úvod

Implementace rozhraní Kraken REST API pomocí Bourne Again shell (bash) a některých souvisejících příkazů (openssl, base64, xxd atd.) může být pohodlným a efektivním řešením pro interakci s trhy Kraken (i když by to nebyla nejrychlejší implementace ve srovnání s kompilovaným kódem).

Bash a požadované příkazy jsou snadno dostupné (předinstalované) na většině systémů UNIX, Linux a macOS a lze je snadno nainstalovat na Windows a další systémy, takže veškerý potřebný software je k dispozici bez použití jakýchkoli dalších nástrojů nebo knihoven API třetích stran.

Pomocí jednoduchého textového editoru (dokonce i starého editoru, jako je vi) a několika řádků kódu je možné přistupovat k veřejným tržním datům i soukromým datům účtu a také zadávat/rušit objednávky na trzích Kraken.

Příklad kódu

Následující kód ukazuje implementaci bash kódu pro volání koncového bodu 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

a odpovídající kód lze také stáhnout (jako soubor kapi_bash.sh).

Další použití/vývoj

Pro načtení zůstatků vašeho vlastního účtu by měl být příkladový API klíč nahrazen API klíčem z vašeho vlastního účtu Kraken a další koncové body API lze povolit jednoduše úpravou proměnné api_endpoint a proměnné api_post (v případě potřeby).

Potřebujete další pomoc?