반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

undefined

API 와 AJAX 본문

Javascript

API 와 AJAX

JavaScripter 2022. 5. 26. 21:51
반응형

<api>

api = 다른 곳의 데이터를 구하기 위한 통로

api에 데이터 전송 => 원하는 데이터를 얻음

api는 대부분 json // 소수 XML(구식)

 

<json>

1. json의 형식    무조건 "" // (not '')

{"asd" = "ddd"}

 

2. json.value의 종류

object, array, string, number, boolean, null (undefined 없다!XXXX)

 

3. json <=> js

json.parse // json => js

json.stringfy // js => json

 

<XML>

XML 써보기! (잘 안쓰는 방식)

arrow 안되고, Promise 안됨*

 

 

예시에 앞선 비트코인 가격 api

 

btc 가격 API를 활용한 예)

const req = new XMLHttpRequest();

req.onload = function () {

console.log("Success");

const btc = JSON.parse(this.responseText);

btcPrice = btc.data.amount;

console.log(btcPrice);

};

req.onerror = function () {

console.log("Error");

console.log(this);

};

req.open("GET", "https://api.coinbase.com/v2/prices/spot?currency=KRW");

req.send();

keyword = onload, onerror, open, send

 

<AJAX>

AJAX = Asynchronous JavaScript And XML (비동기 자바스크립트와 XML)

 

fetch는 XML상위호환

fetch는 자동으로 Promise를 반환 

fetch의 단점 = 데이터가 바로 나오지 않음 (parse해줘야 나옴) =>axios를 이용하면 데이터가 바로나온다!

JSON.parse 대신 .json()을 써줌

 

 

예시)

<1> then catch 활용

fetch("https://api.coinbase.com/v2/prices/spot?currency=KRW")

.then((res) => {

console.log("Success");

return res.json();

})

.then((data) => {

console.log("Data parsed");

console.log(data.data.amount);

})

.catch((e) => {

console.log("Error");

console.log(e);

});

<2> async await 활용

const fetchBTCPrice = async () => {

try {

const res = await fetch(

"https://api.coinbase.com/v2/prices/spot?currency=KRW"

);

const data = await res.json();

console.log(data.data.amount);

} catch (e) {

console.log("Error");

console.log(e);

}

};
반응형

'Javascript' 카테고리의 다른 글

프로그래밍, 자바스크립트에 대하여 - Day 01  (0) 2022.09.25
class - Constructor, extends 와 super  (0) 2022.05.28
비동기식 함수 Promise/Async /Await  (0) 2022.05.25
for...of loop  (0) 2022.05.18
Method - splice, sort  (0) 2022.05.13
Comments