• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak skorzystać z API od NBP?

+2 głosów
4,197 wizyt
pytanie zadane 6 sierpnia 2023 w JavaScript przez El Lirón Obywatel (1,350 p.)

Dzień dobry!

W ramach nauki API chciałem zrobić prosty kalkulatorek pokazujący ile gramów złota mozna kupić za podaną kwotę. Trochę mi się juz udało, ale nie mogę się odwołać do tej wartości (cena: 253.96). W ogóle mi to co widzę w konsoli nie wygląda na json...Co robię źle i jak "wydobyć" tę cenę złota?

Bardzo dziękuję za każdą pomoc!



 

const input = document.querySelector(".basic__input");
const confirmButton = document.querySelector(".basic__confirm");
const img = document.querySelector(".basic__img");

const goldAmount = document.querySelector(".gold__amount");
const usdAmount = document.querySelector(".usd__amount");
const eurAmount = document.querySelector(".eur__amount");

const URL = 'http://api.nbp.pl/api/cenyzlota';

let pln;
let goldPrize;
let goldAmountContent;

const calculate = () => {
    fetch(URL)
        .then(res => res.json())
        .then(data => console.log(data[0]))
};

confirmButton.addEventListener("click", calculate());

 

2
komentarz 6 sierpnia 2023 przez PH03NIX Mądrala (6,130 p.)
Z tego co pamiętam w api nbp, żeby otrzymać jsona trzeba dodać ?format=json na końcu url.
3
komentarz 6 sierpnia 2023 przez reaktywny Nałogowiec (46,210 p.)

@El Lirón,   API jest doskonale opisane, jest sporo przykładów.

Skorzystaj z linku:

http://api.nbp.pl/api/cenyzlota/last/30/?format=json

I masz wszystko.

 

 

komentarz 7 sierpnia 2023 przez pablop76 VIP (123,640 p.)

1 odpowiedź

+2 głosów
odpowiedź 6 sierpnia 2023 przez VBService Ekspert (256,660 p.)

Użyj w linku https zamiast http

przykład  [ on-line ]

const URL1 = 'https://api.nbp.pl/api/cenyzlota/';
const URL2 = 'https://api.nbp.pl/api/cenyzlota/?format=json';

const calculate = (url) => {
  fetch(url)
    .then(res => res.json())
    .then(data => {
    cenaZlota = data[0].cena;
    document.querySelector('pre').textContent += `Cena złota: ${cenaZlota}pln\n`;
  })
    .catch(error => {
    console.error('Wystąpił błąd podczas pobierania danych:', error);
  });
};

calculate(URL1);
calculate(URL2);

 

komentarz 7 sierpnia 2023 przez reaktywny Nałogowiec (46,210 p.)

To ciekawe, bo u mnie bez https wyrzuca pięknie ostatnich 30 cen złota (link powyżej).

komentarz 7 sierpnia 2023 przez VBService Ekspert (256,660 p.)
edycja 7 sierpnia 2023 przez VBService

A u Mnie przeglądarka blokuje, pomimo, że nic specjalnie nie ustawiałem w ustawieniach przeglądarki w tej kwestii.

http - błąd
Mixed Content

komentarz 7 sierpnia 2023 przez reaktywny Nałogowiec (46,210 p.)
Chrome i FF w Ubuntu wyświetlają elegancko JSON-a.

Ale kiedyś spotkałem się z tym co piszesz w scraperach.

Podobne pytania

+1 głos
1 odpowiedź 2,053 wizyt
pytanie zadane 25 sierpnia 2022 w JavaScript przez vishi7 Początkujący (430 p.)
0 głosów
1 odpowiedź 2,604 wizyt
+1 głos
1 odpowiedź 3,657 wizyt

93,776 zapytań

142,732 odpowiedzi

323,384 komentarzy

63,379 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...