Метка: golang
Работа с API криптобиржи Yobit на golang - Получение собственного баланса
Все примеры работают с go version go1.9.2 linux/amd64
Работа с API для торгов
Получение своего баланса
Прежде всего для работы с api торгов нужно создать пару Ключ - Секрет на странице https://yobit.io/ru/api/keys/
Все будет немного сложнее, чем в предыдущем примере. Именно авторизация на бирже и подпись параметров вызвали у меня больше всего вопросов. Потому-то и хочется оставить рабочий код здесь.
Для начала каждый запрос нам нужно будет подписывать. И чтобы запросы (и подписи) отличались, биржа требует указывать каждый раз параметр nonce
в виде целого числа в диапазоне 1..2147483646. При чем в каждом следующем запросе это число должно быть больше, чем в предыдущем. Для обнуления нужно создать новый ключ.
Для получения параметра nonce
напишем отдельную функцию, чтобы мы могли пользоваться им даже после рестарта приложения:
import (
"io/ioutil"
"strconv"
)
func GetNonce(key string) (nonce int, err error) {
nonceFileName := "nonce." + key[0:8] + ".txt"
nonceBytes, err := ioutil.ReadFile(nonceFileName)
if err == nil {
nonce, _ = strconv.Atoi(string(nonceBytes))
}
nonce++
err = ioutil.WriteFile(nonceFileName, []byte(strconv.Itoa(nonce)), 0644)
return
}
Для того, чтобы хранить параметр для каждого ключа отдельно, используем часть ключа как часть имени файла.
Работа с API криптобиржи Yobit на golang - Получение доступных пар
Все примеры работают с go version go1.9.2 linux/amd64
Работа с открытым API
Получение информации о доступных валютных парах
Посмотрим, что написано в документации:
Пример запроса: https://yobit.net/api/3/info
Пример ответа:
{
"server_time":1418654531,
"pairs":{
"ltc_btc":{
"decimal_places":8,
"min_price":0.00000001,
"max_price":10000,
"min_amount":0.0001,
"hidden":0,
"fee":0.2
}
...
}
}
В первую очередь для работы с json-api нам потребуется создать структуры данных, в котрые мы будем разбирать полученный JSON.