250x250
Rainbow๐ŸŒˆCoder
My dev Note๐Ÿ“’
Rainbow๐ŸŒˆCoder
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (411)
    • ๊ณต์ง€์‚ฌํ•ญ (0)
    • Debugger (10)
      • Visual Studio Debugger (1)
      • Chrome DevTools (3)
      • Visual Studio Code Debugger (4)
      • eclipse (1)
      • intelliJ (1)
    • OOP (2)
      • OOP (2)
    • TypeScript (54)
      • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ TypeScript (54)
    • Javascript (87)
      • Javascript (45)
      • Node.js (19)
      • React (5)
      • FE ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ค์ • (3)
      • React์™€ Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ (6)
      • next.js (2)
      • pixi.js (7)
    • ๋งˆํฌ์—… (23)
      • Html & Css (23)
    • C# (80)
      • C# (12)
      • ์ด๊ฒƒ์ด C#์ด๋‹ค (68)
    • C++ (30)
      • c++ (27)
      • win api (3)
    • Unity (18)
      • Unity(๊ธฐ์ดˆ) (8)
      • Unity(C#์ค‘๊ธ‰) (5)
      • ์œ ๋‹ˆํ‹ฐ ํฌํ†ค(๋„คํŠธ์›Œํฌ) (4)
      • unity c# MyCode (1)
    • Java & Spring (29)
      • Java (11)
      • ์Šคํ”„๋ง (8)
      • Java Algorithm (9)
      • Javs Data Structures (1)
    • ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (15)
      • ์ž๋ฃŒ๊ตฌ์กฐ (5)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (10)
    • ํ˜•์ƒ๊ด€๋ฆฌ (15)
      • Git (11)
      • ์†Œ์ŠคํŠธ๋ฆฌ (3)
    • ๊ทธ๋ž˜ํ”ฝ์Šค (7)
      • WebGl (7)
    • AWS (3)
      • aws (3)
    • ๋ฆฌ๋ˆ…์Šค (5)
      • ๋ฆฌ๋ˆ…์Šค (5)
    • ์ฑ… ๋ฆฌ๋ทฐ (13)
      • ํด๋ฆฐ์ฝ”๋“œ(์ฑ…๋ฆฌ๋ทฐ) (3)
      • ์œ ์ง€๋ณด์ˆ˜๊ฐ€๋Šฅํ•œ์ฝ”๋”ฉ์˜๊ธฐ์ˆ C#ํŽธ(์ฑ…๋ฆฌ๋ทฐ) (1)
      • ๋ฆฌํŒฉํ† ๋ง(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธํŒ) (9)
    • Server (2)
      • ๊ฒŒ์ž„ ์„œ๋ฒ„(๋„คํŠธ์›Œํฌ, ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ,OS) (2)
    • ์„ค๊ณ„, ์•„ํ‚คํ…์ณ (4)
    • ํŒŒ์ด์ฌ (5)
    • ๋””์ž์ธํŒจํ„ด (2)
    • mocha (2)
    • Jest (1)
    • Spine (1)
    • ์ธ๊ณต์ง€๋Šฅ (1)
      • ํ˜ผ์ž๊ณต๋ถ€ํ•˜๋Š”๋จธ์‹ ๋Ÿฌ๋‹+๋”ฅ๋Ÿฌ๋‹ (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ใ…ฃใ„ท
  • MySQL
  • ์œ„์ž„
  • ์ปดํฌ์ง€์…˜

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
Rainbow๐ŸŒˆCoder

My dev Note๐Ÿ“’

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] web api ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
Javascript/Javascript

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] web api ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

2022. 4. 24. 17:26
728x90

 

ํ•ด๋‹น ํŒจํ„ด์„ ์ž˜ ๊ธฐ์–ตํ•˜๋ฉด ๋œ๋‹ค.

 

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();

 

์ˆœ์‹๊ฐ„์— 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();

์„ฑ๊ณต~!

728x90

'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
    'Javascript/Javascript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] Array.from( {length} ๊ตฌ๋ฌธ์—์„œ {length}์€ ์œ ์‚ฌ๋ฐฐ์—ด?
    • [์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ์ž๋ฃŒ๊ตฌ์กฐ ํ,์Šคํƒ, ํŠธ๋ฆฌ ๊ตฌํ˜„
    • [์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ์ œ๋„ˆ๋ ˆ์ดํ„ฐ
    • [์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] how to remove array element javascript
    Rainbow๐ŸŒˆCoder
    Rainbow๐ŸŒˆCoder
    ๋ชฐ๋ผ๋„ ๊ฒฐ๊ตญ์€ ์•„๋Š” ๊ฐœ๋ฐœ์ž, ๊ทธ๋Ÿฐ ์‚ฌ๋žŒ์ด ๋˜๊ธฐ ์œ„ํ•œ ๋งค์ผ์˜ ํ•œ๊ฑธ์Œ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”