โจ Fetch API ๋?
์๊ฒฉ API๋ฅผ ํธ์ถํ ์ ์๋๋ก ํ๋ ํจ์์ด๋ฉฐ, ์ ๋ฌ์ธ์๋ก url ๊ณผ options ๋ฅผ ๋ฐ๋๋ค. url ์๋ API ์ฃผ์๋ฅผ ์ ๋ ฅํ๊ณ , options ์๋ request ๋ด์ฉ์ ์ธ๋ถ์ ์ผ๋ก ์ถ๊ฐํ๋ค.
let url = 'http://something.com'
let options = {
method: 'POST',
body: JSON.stringify({
username:"์์ด์ค",
text:"์๋ฉ๋ฆฌ์นด๋
ธ"
}),
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
}
fetch(url, options)
.then((response) => console.log("response:", response))
.catch((error) => console.log("error:", error));
โจ Fetch API ์ฌ์ฉ ๋ฐฉ๋ฒ (Node, browser)
๋ธ๋ผ์ฐ์ ์๋ ๋ด์ฅ๋์ด ์์ผ๋ฏ๋ก ๋ฐ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๋, node ์์ ์คํํ๊ธฐ ์ํด์๋ ๋ณ๋์ ๋ชจ๋ ์ค์น๊ฐ ํ์ํ๋ค.
์ด ๋, node-fetch
๋ชจ๋์ ์ ์ฉํ๊ฒ ํ์ฉํ ์ ์๋ค.
npm install node-fetch
๋ฅผ ์งํํ ์ดํ, js ํ์ผ์์ import ๋ฅผ ํด์ฃผ๋ฉด ๋๋ค.
const fetch = require('node-fetch'); // import ํ๋ ๋ฐฉ๋ฒ : js ํ์ผ ์ต์๋จ์ ํด๋น ๊ตฌ๋ฌธ ์
๋ ฅ
โจ Fetch API ์ ํน์ง
HTTP ์ํ ์ฝ๋๊ฐ 400 ๋๋ 500๋๋ฅผ ๋ฐํํด๋ ์ํ ์ฝ๋๋ฅผ reject ํ์ง ์์ผ๋ฉฐ, ๋คํธ์ํฌ ์ฅ์ ๋๋ ์์ฒญ์ด ์๋ฃ๋์ง ๋ชปํ ๊ฒฝ์ฐ์๋ง reject ๋ฅผ ํ๋ค. ๋์ ์ํ ์ฝ๋๊ฐ 400 ๋๋ 500์ด ๋ฐํ๋ ๊ฒฝ์ฐ ok ์ํ๊ฐ false ๊ฐ ๋๋ค.
๋ํ options ์ถ๊ฐ ์ค์ ์ ํตํด ์ฟ ํค, ํ์ผ ์ฒจ๋ถ ๋ฑ์ ๊ณ ๊ธ ์ค์ ์ ํ ์ ์๋ค.
์ฐธ๊ณ ์๋ฃ
'๐ป DEV > Javascript & NodeJS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Javascript] JSON (0) | 2021.06.05 |
---|---|
[Javascript] ExpressJS (Intro) (0) | 2021.06.05 |
[Javascript] Async ํจ์์ Await (0) | 2021.05.27 |
[Javascript] Promise (ํ๋ก๋ฏธ์ค) (0) | 2021.05.27 |
[Javascript] ๋น๋๊ธฐ, ๋๊ธฐ ํจ์ (Asynchronous, Synchronous) ๋? (0) | 2021.05.27 |
๋๊ธ