Contoh permintaan REST API menggunakan bash

Terakhir dikemas kini: 31 Mac 2025

Pengenalan

Melaksanakan antara muka Kraken REST API menggunakan Bourne Again shell (bash) dan beberapa arahan berkaitan (openssl, base64, xxd, dsb.) boleh menjadi penyelesaian yang mudah dan cekap untuk berinteraksi dengan pasaran Kraken (walaupun ia bukan pelaksanaan terpantas berbanding kod yang dikompilasi).

Bash dan arahan yang diperlukan tersedia dengan mudah (pra-pasang) pada kebanyakan sistem UNIX, Linux, dan macOS, dan boleh dipasang dengan mudah pada Windows dan sistem lain, jadi semua perisian yang diperlukan tersedia tanpa menggunakan sebarang alat atau pustaka API pihak ketiga tambahan.

Menggunakan editor teks biasa (walaupun editor lama seperti vi) dan beberapa baris kod, adalah mungkin untuk mengakses kedua-dua data pasaran awam dan data akaun peribadi, dan juga untuk membuat/membatalkan pesanan di pasaran Kraken.

Contoh Kod

Kod berikut menunjukkan pelaksanaan kod bash untuk memanggil titik akhir 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

dan kod yang sepadan juga boleh dimuat turun (sebagai fail kapi_bash.sh).

Penggunaan/Pembangunan Lanjut

Untuk mendapatkan baki akaun anda sendiri, kunci API contoh harus digantikan dengan kunci API daripada akaun Kraken anda sendiri, dan titik akhir API tambahan boleh diaktifkan hanya dengan mengubah suai pemboleh ubah api_endpoint dan pemboleh ubah api_post (jika diperlukan).

Perlu bantuan lebih lanjut?