Παράδειγμα αιτήματος REST API χρησιμοποιώντας bash

Τελευταία ενημέρωση: 31 Μαρτίου 2025

Εισαγωγή

Η υλοποίηση μιας διεπαφής Kraken REST API χρησιμοποιώντας το Bourne Again shell (bash) και ορισμένες σχετικές εντολές (openssl, base64, xxd, κ.λπ.) μπορεί να αποτελέσει μια βολική και αποτελεσματική λύση για την αλληλεπίδραση με τις αγορές της Kraken (αν και δεν θα ήταν η ταχύτερη υλοποίηση σε σύγκριση με μεταγλωττισμένο κώδικα).

Το Bash και οι απαιτούμενες εντολές είναι άμεσα διαθέσιμα (προεγκατεστημένα) στα περισσότερα συστήματα UNIX, Linux και macOS, και μπορούν να εγκατασταθούν εύκολα σε Windows και άλλα συστήματα, οπότε όλο το απαιτούμενο λογισμικό είναι διαθέσιμο χωρίς τη χρήση πρόσθετων εργαλείων ή βιβλιοθηκών API τρίτων.

Χρησιμοποιώντας έναν απλό επεξεργαστή κειμένου (ακόμη και έναν παλιού τύπου επεξεργαστή όπως το vi) και μερικές γραμμές κώδικα, είναι δυνατόν να αποκτήσετε πρόσβαση τόσο σε δημόσια δεδομένα αγοράς όσο και σε ιδιωτικά δεδομένα λογαριασμού, καθώς και να τοποθετήσετε/ακυρώσετε εντολές στις αγορές της Kraken.

Παράδειγμα Κώδικα

Ο παρακάτω κώδικας δείχνει μια υλοποίηση κώδικα bash για την κλήση του endpoint Balance του REST API:

#!/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

και ο αντίστοιχος κώδικας μπορεί επίσης να κατεβεί (ως αρχείο kapi_bash.sh).

Περαιτέρω Χρήση/Ανάπτυξη

Για να ανακτήσετε τα δικά σας υπόλοιπα λογαριασμού, το παράδειγμα κλειδιού API θα πρέπει να αντικατασταθεί με ένα κλειδί API από τον δικό σας λογαριασμό Kraken, και επιπλέον API endpoints μπορούν να ενεργοποιηθούν απλά τροποποιώντας τη μεταβλητή api_endpoint και τη μεταβλητή api_post (εάν χρειάζεται).

Χρειάζεστε περισσότερη βοήθεια;