Я делаю небольшое приложение, которое отслеживает значения криптовалюты на бирже Bittrex.
Для этого я использую Bittrex 'publi c api (https://bittrex.github.io/api/v3) К сожалению API не предоставляет данные, которые мне нужны, с помощью всего одного вызова, поэтому мне нужно сделать два вызова API.
Я хочу получить один объект, содержащий все следующие значения:
- символ (это общее значение для обоих вызовов API, поэтому оно должно совпадать)
- quoteVolume
- percentChange
- lastTradeRate
Переменная, выделенная жирным шрифтом, является частью одного вызова API, другие значения - частью другого. «Символ» является частью обоих.
Я использую kotlin сопрограммы и надеялся, что мне не нужно использовать что-то вроде Rx Java, чтобы заставить это работать.
CoroutineScope(IO).launch {
val tickers = async {
api.getTickers()
}.await()
val markets = async {
api.getMarkets()
}.await()
val result = mutableListOf<Market>()
for (ticker in tickers.data) {
for (market in markets.data) {
if (ticker.symbol == market.symbol) {
result.add(
Market(
ticker.symbol,
ticker.lastTradeRate,
market.quoteVolume,
market.percentChange
)
)
}
}
}
}