Получение значений из вызова API |Wix - PullRequest
0 голосов
/ 23 мая 2018

Я использую API для получения курсов валют.Базовая и выходная валюта вводятся пользователем.

Это мой бэкэнд:

    import {fetch} from 'wix-fetch';  


export function getCurrency(currency,baseCurrency) {
    const url = 'https://api.fixer.io/latest?base=';

    let fullUrl = url + baseCurrency + '&symbols=' + currency;

    return fetch(fullUrl, {method: 'get'})
      .then(response => response.json())
      .then(json => json.rates[currency].toString());
}

И это мой код страницы:

    import {getCurrentTemp, getCurrency} from 'backend/ArenaApi';

export function button1_click(event, $w) {
    getCurrency($w("#currencysymbol").value,$w("#baseCurrency").value)
  .then(rates => $w("#currencyrate").text = "1 " + ($w("#baseCurrency").value) + " = " + rates + " " + ($w("#currencysymbol").value));
    $w("#currencyrate").show();
}

Из чегоЯ понимаю, что мой бэкэнд получает эти данные:

"base":"USD","date":"2018-05-22","rates":{"EUR":0.84789}

и извлекает "ставки" из этой строки через следующую строку в бэкэнде:

.then(json => json.rates[currency].toString());

Я хочу знать, как я могу получить несколько значений из одной строки?Для этого экземпляра: "rate" "base" "date" , а затем вставьте его в текстовый элемент на странице, например:

.then(rates => $w("#currencyrate").text = "1 " + ($w("#baseCurrency").value) + " = " + rates + " " + ($w("#currencysymbol").value));

1 Ответ

0 голосов
/ 23 мая 2018

Начните с возврата всего кода JSON к коду страницы, а не только к показателям в коде вашего бэкенда:

import {fetch} from 'wix-fetch';  

export function getCurrency(currency,baseCurrency) {
  const url = 'https://api.fixer.io/latest?base=';
  let fullUrl = url + baseCurrency + '&symbols=' + currency;

  return fetch(fullUrl, {method: 'get'})
    .then(response => response.json());
}

Теперь, когда у вас есть все, что доступно для кода страницы, вы можете извлекать все, что захотитеот него.Например:

import {getCurrentTemp, getCurrency} from 'backend/ArenaApi';

export function button1_click(event, $w) {
  const currency = $w("#currencysymbol").value;
  const baseCurrency = $w("#baseCurrency").value;

  getCurrency(currency, baseCurrency)
    .then( (json) => {
      $w("#base").text = json.base;
      $w("#date").text = json.date;
      $w("#rate").text = json.rates[currency].toString 
    });

}

...