Esimerkki REST API -pyynnöstä bashilla

Viimeksi päivitetty: 31. maaliskuuta 2025

Johdanto

Kraken REST API -rajapinnan toteuttaminen käyttämällä Bourne Again shelliä (bash) ja joitakin siihen liittyviä komentoja (openssl, base64, xxd jne.) voi olla kätevä ja tehokas ratkaisu vuorovaikutukseen Krakenin markkinoiden kanssa (vaikka se ei olisikaan nopein toteutus verrattuna käännettyyn koodiin).

Bash ja tarvittavat komennot ovat helposti saatavilla (esiasennettuina) useimmissa UNIX-, Linux- ja macOS-järjestelmissä, ja ne voidaan helposti asentaa Windowsiin ja muihin järjestelmiin, joten kaikki tarvittavat ohjelmistot ovat käytettävissä ilman kolmannen osapuolen API-työkaluja tai -kirjastoja.

Käyttämällä pelkkää tekstieditoria (jopa vanhan koulukunnan editoria, kuten vi) ja muutamaa koodiriviä on mahdollista päästä käsiksi sekä julkisiin markkinatietoihin että yksityisiin tilitietoihin sekä tehdä ja peruuttaa toimeksiantoja Krakenin markkinoilla.

Esimerkkikoodi

Seuraava koodi näyttää bash-toteutuksen REST API:n Balance-päätepisteen kutsumiseen:

#!/usr/bin/env bash

# Tilinhallintasivustolta kopioidut julkiset/yksityiset API-avaimet

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

# API-muuttujat (URL, päätepiste, nonce jne.)

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

# Todennusalgoritmi (SHA256 ja 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-pyyntö (POST)

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

ja vastaava koodi voidaan myös ladata (kapi_bash.sh-tiedostona).

Jatkokäyttö ja kehitys

Hakeaksesi omat tilisi saldot, esimerkin API-avain tulee korvata omalta Kraken-tililtäsi saadulla API-avaimella. Muita API-päätepisteitä voidaan ottaa käyttöön yksinkertaisesti muokkaamalla api_endpoint- ja api_post-muuttujia (tarvittaessa).

Tarvitsetko lisää apua?