Esempio di richiesta API REST tramite bash

Ultimo aggiornamento: 31 mar 2025

Introduzione

L'implementazione di un'interfaccia Kraken REST API utilizzando la Bourne Again shell (bash) e alcuni comandi associati (openssl, base64, xxd, ecc.) può essere una soluzione comoda ed efficiente per interagire con i mercati di Kraken (anche se non sarebbe l'implementazione più veloce rispetto al codice compilato).

Bash e i comandi richiesti sono prontamente disponibili (preinstallati) sulla maggior parte dei sistemi UNIX, Linux e macOS, e possono essere facilmente installati su Windows e altri sistemi, quindi tutto il software necessario è disponibile senza l'uso di strumenti o librerie API di terze parti aggiuntivi.

Utilizzando un editor di testo semplice (anche un editor della vecchia scuola come vi) e poche righe di codice, è possibile accedere sia ai dati di mercato pubblici che ai dati dell'account privato, e anche piazzare/annullare ordini sui mercati di Kraken.

Codice di esempio

Il seguente codice mostra un'implementazione in bash per chiamare l'endpoint REST API Balance:

#!/usr/bin/env bash

# Chiavi API pubbliche/private copiate dal sito web di gestione dell'account

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

# Variabili API (URL, endpoint, nonce, ecc.)

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

# Algoritmo di autenticazione (SHA256 e 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`

# Richiesta HTTP (POST)

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

e il codice corrispondente può anche essere scaricato (come file kapi_bash.sh).

Ulteriore utilizzo/sviluppo

Per recuperare i saldi del tuo account, la chiave API di esempio dovrebbe essere sostituita con una chiave API del tuo account Kraken, e ulteriori endpoint API possono essere abilitati semplicemente modificando la variabile api_endpoint e la variabile api_post (se necessario).

Hai ancora bisogno di aiuto?