์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ์ฑ์ฅ๊ธฐ๋ก
- ์ด๋ชฝ์ด์ค๊ณต๋ต
- ํ ์ต๋ชฉํ
- ์ฝ๋ฉ
- ํ์
- ์ฝ๋ฉ์บ ํ
- ์ด๋ชฝ์ด์ค
- PT
- GitHub
- react
- ๊น
- IT
- ๋ชจ๋ฐ์ผ๊ฒ์
- ๊ฐ๋ฐ์
- TiL
- ํฌ์ค
- ํฌ์ค๊ธฐ๋ก
- ํ๊ธฐ
- ์ง์ฝ
- ๋ค์ด์ดํธ
- FE
- ๋น์ ๊ณต์
- ๋ฐ๋ํ๋กํ
- Front-End
- ์ฝ๋ฉํ ์คํธ
- ๊ฒ์์ถ์ฒ
- Git
- ์ผํ
- ๊นํ๋ธ
- ํ๋ก๊ทธ๋๋จธ์ค
- Today
- Total
JOYLOG
์ํ์งํฅ์์ํ API ์ฌ์ฉํ๊ธฐ : Fetch API ๋ณธ๋ฌธ
์ํ์งํฅ์์ํ API ์ฌ์ฉํ๊ธฐ : Fetch API
์ฃผํ 2020. 9. 11. 18:12์ด๋ฒ ํฌ์คํ ์์๋
Json์ผ๋ก ์ํ์งํฅ์์ํ์ ์คํ API๋ฅผ ํ์ฉํ ๊ฒ์ด๋ค.
โ
htmlํ์ผ์ static์ ์ฐ๊ฒฐํ๊ณ json ํ์ผ์ ์ฐ๊ฒฐํด๋๋ฉด ์ค๋น์๋ฃ!
โ
index.html
index.json
๋ ๊ฐ์ ํ์ผ๊ณผ ์น๊ฐ๋ฐ ํ๊ฒฝ์ ์ค๋นํ์๊ณ , ์ด๋ฒ ํ์ต์์๋ json ํ์ผ ์์ ๋ง ์์ ์์ ์ด๋ค
"์ํ์งํฅ์์ํ ์คํAPI"
โ
http://www.kobis.or.kr/kobisopenapi/homepg/apiservice/searchServiceInfo.do
์ ์ฃผ์, ์ํ์งํฅ์์ํ ์คํAPI์์ ์ํ๋ชฉ๋ก์ ๊ฐ์ ธ์ฌ ๊ฒ์ด๊ณ ,
ํ์ด์ง๋ฅผ ๋ณด๋ฉด ์์ฒญ ์ธํฐํ์ด์ค, ์๋ต ๊ตฌ์กฐ ๋ฑ์ด ์ด๋ป๊ฒ ์ง์ ๋์ด ์๋์ง ๋ณผ ์ ์๋ค.
์ฐ๋ฆฌ๋ ์ด๋ฒ ์๊ฐ ์๋ฅผ ํ์ฉํด ์ํ๋ API๋ฅผ ํ์ฉํ๋ค.
โ
ํ์๊ฐ์ ์ ํด์ ๋ณธ์ธ์ ํค๋ฅผ ๋ฐ๊ธ๋ฐ์์ผ API๋ฅผ ํ์ฉํ ์ ์๋ค. โญ
key๋ฅผ ๋ฐ๊ธ๋ฐ์์ผํ๋ ์ด์ ๋ ๋ด๊ฐ ๋๊ตฌ์ธ์ง ์ ๋ถ์ ํ์ธ๋ฐ๊ณ API๋ฅผ ์ฌ์ฉํด์ผํ๊ธฐ ๋๋ฌธ!
์ผ์ข ์ ์ ๋ถ ํ์ธ ํ๋ก์ธ์ค๋ผ๊ณ ์ดํดํ๋ฉด ๋๋ค.
"์ฝ๋"
โ
index.html
<!-- index.html -->
<!-- static ํ์ผ๋ค๊ณผ ์ฐ๊ฒฐํ์๊ณ , API๋ก ์ป์ ์ ๋ณด๋ค์ html๋ก ๋ณด๋ด๊ธฐ์ํด id๊ฐ a์ธ div๋ฅผ ๋ง๋ค์ด ๋์ -->
<!-- script์ json ์ฐ๊ฒฐ -->
<!DOCTYPE html>
{% load static %}
<!-- static ํด๋์ ์ฐ๊ฒฐ -->
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="a">
</div>
<script src = "/static/js/index.js"> //javaScirpt
</script>
</body>
</html>
index.json
>> ์ํ์ด๋ฆ, ๊ตญ๊ฐ, ์ฅ๋ฅด, ์ ์์ฐ๋๋ฅผ ๋ถ๋ฌ์ค๋ ์ฝ๋์ด๋ค.
์ด ์ฝ๋๋ฅผ ์ดํดํ๊ธฐ ์ํด์
JavaScript์์ DOM์ ๋ํ ์ดํด๊ฐ ํ์ํ ๊ฒ ๊ฐ๋ค๊ณ ์๊ฐํ์๋ค
์๋ ์ฝ๋์์๋
document.createElement('p')๋ฅผ ์ด์ฉํ์ฌ
๊ฐ์ ธ์จ ์ ๋ณด๋ค์ ์๋ก์๊ธด pํ๊ทธ์ ๋ฃ์ด์ฃผ์ด
html์ ๋ณด๋ด๋ ์์ ์ ํ๊ณ ์๋ค
//index.json
var key = "?key=๊ฐ์ธ์ํค" // key ์์ <?key=>๋ฅผ ๋ถ์ฌ์ผํจ : prameter
var itemPerPage = "&itemPerPage=20" //20๊ฐ๋ฅผ ๊ฐ์ ธ์ฌ๊ฒ์ด๋ผ์
const url = "http://www.kobis.or.kr/kobisopenapi/webservice/rest/movie/searchMovieList.json"
+ key
+ itemPerPage
var item_int = 20
var title = document.getElementById('a') //html์์ id a์ ํด๋นํ๋ ๊ฒ
fetch(url)
.then(response=>response.json())
.then(function(msg){ //์๋๋ถํฐ๋ html๋ก ๊ฐ์ ธ์ค๊ธฐ ์ํ ์ฝ๋
for(var i =0; i<item_int; i++){
var div = document.createElement('div');
var low_div = document.createElement('div')
var title_div = document.createElement('div')
var br = document.createElement('br');
var mp = document.createElement('p');
mp.id = 'movieNm'
var np = document.createElement('p');
np.id = 'nationAlt'
var gp = document.createElement('p');
gp.id = 'genreAlt'
var pp = document.createElement('p');
pp.id = 'prdtYear'
title_div.id = 'title_div'
low_div.id = 'low_div'
div.id = 'movies'
short_url = msg.movieListResult.movieList[i]
console.log(short_url);
div.appendChild(title_div)
div.appendChild(low_div)
title.appendChild(div);
var movieNm = document.createTextNode(short_url.movieNm);
var nationAlt = document.createTextNode(short_url.nationAlt);
var genreAlt = document.createTextNode(short_url.genreAlt);
var prdtYear = document.createTextNode(short_url.prdtYear);
mp.appendChild(movieNm);
np.appendChild(nationAlt);
gp.appendChild(genreAlt);
pp.appendChild(prdtYear);
title_div.appendChild(mp);
low_div.appendChild(br);
low_div.appendChild(np);
low_div.appendChild(gp);
low_div.appendChild(pp);
}
});
++ ์ถ๊ฐ๋ก ์ดํด๋ฅผ ๋๊ธฐ์ํด ๋ค๋ฅธ ๋ถ๊ป์
์ํ์ด๋ฆ๋ง ๊ฐ์ ธ์ฌ ์ ์๋ ์ฝ๋๋ฅผ ๋ณด๋ด์ฃผ์ จ๋ค
fetch(url)
.then(response=>response.json())
.then(function(msg){
// msg๊ฐ ์ด๋ป๊ฒ ์๊ฒจ๋จน์๋?
console.log(msg);
// i<10 ๋ 10๊ฐ๋ง ๋ณ์๋ก ๋ถ์ฌํด๋ ๊ด์ฐฎ์์ 10๋์
for(let i = 0; i<10; i++){
// console์ ์ฐ์ msg ์์ผ๋ก ๋ค์ด๊ฐ๋ณด๋ฉด movieListResult -> MovieList ๋ฅผ ํ์ธํ ์ ์์ด์
// ํด๋น ๋ด์ฉ์ short_url์ ๋ด์์ for๋ฌธ์ด๋๊น ๋ณธ์ธ์ด ์ํ๋ ํ์๋งํผ
short_url = msg.movieListResult.movieList[i];
//short_url์ด ์ด๋ป๊ฒ ์๊ฒจ๋จน์๋?
console.log(short_url);
// ์ํ์ ๋ชฉ์ id = "a" divํ๊ทธ์ ์ถ๊ฐํด์ฃผ๊ธฐ short_url ์ค์์ movieNm์ movieNm์ด๋ผ๋ ๋ณ์์ ๋ด์์ด์
let movieNm = document.createTextNode(short_url.movieNm);
title.appendChild(movieNm);
// ์ค๋ฐ๊ฟ์ ์ํ brํ๊ทธ _ ์์ด๋๋จ
let br = document.createElement('br');
title.appendChild(br);
}
});
"๊ฒฐ๊ณผ"
โ
html์ ์ด๋ฐ์์ผ๋ก ๊ฐ์ ธ์จ๋ค!
'D E V E L O P E R ๐ป > Back-end' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Mongo DB] 'MongooseServerSelectionError' ํด๊ฒฐ (2) | 2021.07.07 |
---|