ํด๋น ํจํด์ ์ ๊ธฐ์ตํ๋ฉด ๋๋ค.
APIํธ์ถํ๊ณ ์ถ์ ๋
const callAPI = async() =>{
let url = new URL(`url์ฃผ์`)
let header = new Headers({ํค๋๋ด์ฉ}) // ์ด๊ฑด ํ์ํ ๊ฒฝ์ฐ๋ง
let response = await fetch(url,{headers:header})
let data = await response.json()
}
<todolist>
- 1. ํฌ๋กฌv8 ์คํ : url ์ค๋น
- 2. ํฌ๋กฌv8 :์คํ ํค๋ ์ค๋น
- 3. WebApIs๋ก ๋์ด๊ฐ : ๋ฐฑ์๋, ์๋ฒ์ ์์ฒญ
- 4. ๋ฐฑ์๋์์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ์ธ(๋จ, 3๋ฒ ํ์๋ฅผ ๊ธฐ๋ค๋ ค์ผ ํจ. ๊ธฐ๋ค๋ฆฌ๊ธฐ ์ํด์ async/awiat์ ์ด์ฉ)
1. ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ ๊ณตํด์ฃผ๋ URL ํด๋์ค๋ฅผ new๋ก ์ฐ๋ฉด ๋๋ค.
const getLatestNews = () => {
let url = new URL(
`https://api.newscatcherapi.com/v2/latest_headlines?countries=KR&topic=sport&page_size=5`
);
console.log(url);
};
getLatestNews();
1-1
์๋ ์บก์ฒ์ ๊ฐ์ด URL์ ๋ถ์ํด์ค๋ค.
2. ํค๋์ api-key๋ฅผ ๋ฌ์์ค๋ค.
const getLatestNews = () => {
let url = new URL(
`https://api.newscatcherapi.com/v2/latest_headlines?countries=KR&topic=sport&page_size=5`
);
let header = new Headers({'x-api-key':'ํค ๋ณต์ฌํด์ ๋ฃ์ผ๋ฉด ๋จ!'})
console.log(url);
};
getLatestNews();
3. url๊ณผ header๋ฅผ ๋ถ์ฌ์ ๋ถ๋ฅธ๋ค.
const getLatestNews = () => {
let url = new URL(
`https://api.newscatcherapi.com/v2/latest_headlines?countries=KR&topic=sport&page_size=5`
);
let header = new Headers({
"x-api-key": "ํค๊ฐ์ ๋ฃ์ผ๋ฉด๋จ",
});
let response = fetch(url, { headers: header }); //์ฌ์ค fetch ๋ง๊ณ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์๋ค.
console.log(response)
};
getLatestNews();
์ ์ฝ๋ 8๋ผ์ธ์ let response = fetch(url, { headers: header }); //์ฌ์ค fetch ๋ง๊ณ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์๋ค. ๋ผ๊ณ ์์ฑ,
๋ํ์ ์ผ๋ก ์ ์ฉํ๊ฒ ์ด์ฉํ ์ ์๋ ๊ฒ์ ajax, http, fetch๊ฐ ์๋ค.
4. await ํค์๋๋ฅผ ๋ถ์ฌ์ค๋ค. ์์ง async ํค์๋๊ฐ ์์ผ๋ฏ๋ก ์ ๋์ํ์ง ์๋๋ค.
const getLatestNews = () => {
let url = new URL(
`https://api.newscatcherapi.com/v2/latest_headlines?countries=KR&topic=sport&page_size=5`
);
let header = new Headers({
"x-api-key": "ํค๊ฐ์ ๋ฃ์ผ๋ฉด๋จ",
});
let response = await fetch(url, { headers: header });
console.log(response);
};
getLatestNews();
๋ง ๊ทธ๋๋ก ์ง์ญํ์๋ฉด, await์ ํตํด์ ๊ฐ์ ๋ก fetch(url, { headers: header }) ํจ์๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ด๋ค.
5. ์์ ์ด await ํค์๋๊ฐ ์ ์๋ํ๊ธฐ ์ํด์ ํ์ดํ ํจ์์ async ํค์๋๋ฅผ ๋ฌ์์ค๋ค.
const getLatestNews = async () => {
let url = new URL(
`https://api.newscatcherapi.com/v2/latest_headlines?countries=KR&topic=sport&page_size=5`
);
let header = new Headers({
"x-api-key": "ํค๊ฐ์ ๋ฃ์ผ๋ฉด๋จ",
});
let response = await fetch(url, { headers: header });
console.log(response);
};
getLatestNews();
Response {type: 'cors', url: 'https://api.newscatcherapi.com/v2/latest_headlines?countries=KR&topic=sport&page_size=5', redirected: false, status: 200, ok: true, …} body: ReadableStream bodyUsed: false headers: Headers {} ok: true redirected: false status: 200 statusText: "" type: "cors" url: "https://api.newscatcherapi.com/v2/latest_headlines?countries=KR&topic=sport&page_size=5" [[Prototype]]: Response
body: ReadableStream ๊ฒฐ๊ณผ๋ ์์ง ์ ๋ณด์ธ๋ค.
5. Response ๋ฅผ ๋ฐ์์ผ๋ ์ฌ๊ธฐ์์ JSON ๊ฒฐ๊ณผ๋ฌผ์ ๋ฝ์๋ด๋ ์์ ์ ํด์ผ ํ๋ค.(์ธ๊ฐ์ด ์ดํดํ ์ ์๋ ๋ฐ์ดํฐ ํ์ ์ผ๋ก ํํํ๋ ๊ณผ์ )
json์ ์๋ฒํต์ ์์ ๋ง์ด ์ฐ์ด๋ ๋ฐ์ดํฐ ํ์ ์ด๋ค.(๊ฐ์ฒด๋ ๋๊ฐ์๋ฐ text ํ์ ์ธ..)
const getLatestNews = async () => {
let url = new URL(
`https://api.newscatcherapi.com/v2/latest_headlines?countries=KR&topic=sport&page_size=5`
);
let header = new Headers({
"x-api-key": "ํค๊ฐ์ ๋ฃ์ผ๋ฉด ๋จ",
});
let response = await fetch(url, { headers: header });
let data = response.json();
console.log(response);
};
getLatestNews();
API DOCUMENT์์ ๋ณด์ฌ์ฃผ๋ ์์๋ค๋ ์ ๋ถ json์ด๋ค.
json์ ๋ฝ์์ค๋ฉด ๊ฐ์ฒด์ฒ๋ผ ์ธ ์ ์๊ธฐ ๋๋ฌธ์ ์น๊ฐ๋ฐ์์ ์ฆ๊ฒจ์ธ ์๋ฐ์ ์๋ค.
์ด๋ ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ณ JSON์ผ๋ก ๋ฝ์์ค๋ ๊ฒ์๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ด AWATI ํค์๋๋ฅผ ๋ฌ์์ค๋ค.
const getLatestNews = async () => {
let url = new URL(
`https://api.newscatcherapi.com/v2/latest_headlines?countries=KR&topic=sport&page_size=5`
);
let header = new Headers({
"x-api-key": "ํค๊ฐ์ ๋ฃ์ผ๋ฉด ๋จ",
});
let response = await fetch(url, { headers: header });
let data = await response.json();
console.log(data);
};
getLatestNews();
.
ํผ์ณ๋ณด๊ธฐ : ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์๋ค!
7. ๊ธฐ์ฌ๋ง ๋ฐ์์ค์.
let news = [];
const getLatestNews = async () => {
let url = new URL(
`https://api.newscatcherapi.com/v2/latest_headlines?countries=KR&topic=sport&page_size=5`
);
let header = new Headers({
"x-api-key": "ํค๊ฐ ๋ฃ๊ธฐ",
});
let response = await fetch(url, { headers: header });
let data = await response.json();
news = data.articles;
console.log(news);
};
getLatestNews();
์ฑ๊ณต~!
'Javascript > Javascript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฐ์คํฌ๋ฆฝํธ] Array.from( {length} ๊ตฌ๋ฌธ์์ {length}์ ์ ์ฌ๋ฐฐ์ด? (0) | 2022.04.27 |
---|---|
[์๋ฐ์คํฌ๋ฆฝํธ] ์๋ฃ๊ตฌ์กฐ ํ,์คํ, ํธ๋ฆฌ ๊ตฌํ (0) | 2022.04.25 |
[์๋ฐ์คํฌ๋ฆฝํธ] ์ ๋๋ ์ดํฐ (0) | 2022.04.19 |
[์๋ฐ์คํฌ๋ฆฝํธ] how to remove array element javascript (0) | 2022.04.17 |
generate random id ์ ๋ํ ๊นํ๋ธ ๋ต๋ณ (0) | 2022.04.17 |