Hello creators ๐
3-2_์คํ๋ฅดํํผ๋์์ OpenAPI ๋ถ์ฌ๋ณด๊ธฐ ๋ณธ๋ฌธ
3-2_์คํ๋ฅดํํผ๋์์ OpenAPI ๋ถ์ฌ๋ณด๊ธฐ
๋ถ์๋งค๋_HA 2023. 10. 8. 13:11โ . ์ด๋ฒ ํ์ฐจ ํ์ต ๋ชฉํ (goal)
1. ๋ฐฐ์ฐ๊ณ ์ ํ๋ ๊ฒ
- ๋ง๋ ๊ฒ์ ๋ถ์ฌ๋๊ธฐ
โ ก. ํด๋ณด๊ธฐ
1. ๋ง๋ค์ด์ง DB ๋ฅผ API ํํ๋ก ๊ฐ์ ธ์์ ํ์ธ
api ์ฃผ์
http://spartacodingclub.shop/web/api/movie
๋ง๋ค์ด์ง api ํ์ธ
2. ๋ก๋ฉ ํ ๋ฐ๋ก console ์ '๋ก๋ฉ์ด ์ ๋์๋ค.' ๋ ๋ฉ์์ง ๋ณด์ด๊ฒ ํ๊ธฐ [ajax ๋ผ๋๋ง๋ค๊ธฐ]
$(document).ready(function () {
listing();
});
function listing() {
console.log('ํ๋ฉด ๋ก๋ฉ ํ ์ ์คํ๋์์ต๋๋ค');
}
- ์ฝ์ด๋ณด๊ธฐ
$(document).ready(function () {
: ๋ก๋ฉ ํ ์ด๋ค ํจ์๊ฐ ์คํ์ด ๋ ๊ฑฐ์ผ. ๊ทธ๊ฒ ๋ญ์ผ? listing();
: ๋ฆฌ์คํ
ํจ์๊ฐ ์คํ ๋ ๊ฑฐ์ผ~! ๊ทธ๋ฌ๋ฉด, ๋ฆฌ์คํ
ํจ์๋ ๋ญ์ง? function listing() {console.log('ํ๋ฉด ๋ก๋ฉ ํ ์ ์คํ๋์์ต๋๋ค');}
: ์ฝ์์ ๋์ด๋ค.
- ์ด๋ ๊ฒ ํ๋ ์ด์
- ์ด๋ ๊ฒ ํ์ํ ๊ธฐ๋ฅ์ ๋ผ๋๋ฅผ ๋ง๋ค์ด ๋๊ณ -> ์ฌํ ๋๋ ๋ณํ ์์ผ๋๊ฐ๋ ๊ณผ์
3. ํ์ํ data ๊ฐ console ์ ์ ์ฐํ๋์ง ํ์ธ
์ ์ฐํ๋ ์ฝ๋
function listing() { $.ajax({ type: "GET", url: "http://spartacodingclub.shop/web/api/movie", data: {}, success: function (response) { let rows = response['movies'] console.log(rows) } }) }
- ๊ฒฐ๊ณผ๋ฌผ
- ์ ๋์ค๊ณ ์์!
- ์ ๋์ค๊ณ ์์!
4. ์ ๋์ค๋ data ๋ฅผ for ๋ฌธ์ผ๋ก ๋๊ธฐ
- ์ํ๋ ๋ฐ์ดํฐ ๋ณ์๋ฅผ ๋ง๋ค๊ณ ์ ๋ค์ด์ค๋์ง console ๋ก ํ์ธ
- ์ด ๊ณผ์ ๋ค์ด ๋ฐ๋ณต๋๊ณ ์์ โญโญโญโญโญ
- ์ด๊ฒ ์ ๋ง ์์ ์ต์ผ๋ ค๋ฉด, ๋ด๊ฐ ๋ฐ๋ณตํ๋ฉด์, ==์ ๋ณด๊ณ ๋ค์ ๊ณผ์ ์ ๋ ์ฌ๋ฆฌ๋ฉด์==, ๋์์ ์๊ฐ์ ํด๋ด์ผ ํ ๊ฒ ๊ฐ์ โญโญโญโญโญ
function listing() { $.ajax({ type: "GET", url: "http://spartacodingclub.shop/web/api/movie", data: {}, success: function (response) { let rows = response['movies'] for (let i = 0; i < rows.length; i++){ let title = rows[i]['title'] let desc = rows[i]['desc'] let image = rows[i]['image'] let star = rows[i]['star'] let comment = rows[i]['comment'] console.log(title, desc, image, star, comment) } } }) }
- ๊ฒฐ๊ณผ๋ฌผ
- ์ ๋์ค๊ณ ์์.
5. ajax append() ์ฌ์ฉํด์, ์นด๋ ์ถ๊ฐ๋ก ๋ถ์ด๊ธฐ
์นด๋ ์์ญ html ๋ณต์ฌ
์ด ๋์ temp_html ๋ณ์์ ๋๊ณ
ajax append ์ ๋ฃ์ผ๋ฉด ๋๋ค.
๊ทธ๋ฆฌ๊ณ , ๊ธฐ์กด ๊ฒ๋ค ์ง์์ฃผ๊ธฐ ์ํด์ empty() ์ฌ์ฉ ํ๋ฉด ๋๋ค. โญโญโญ
- ์ด๊ฑธ ํด์ผ, ์ ๋ฐ์ดํธ ๊ธฐ๋ฅ์ด ์์ฑ ๋ ์ ์์.
์ ์ ๊ธฐํ๋ค ์ง์ง โญโญโญโญโญโญโญโญ
๊ทธ๋ฆฌ๊ณ append ์ธ ๋, html ์ ๋๋ฌด ์ด๋ ต๊ฒ ์๊ฐํ ํ์ ์๊ณ , ๊ทธ๋ฅ body ๋ถ๋ถ์ ์๋ ๊ฒ๋ค ์ด๋ผ๊ณ ์๊ฐํด์ผ ํ๋ ค๋.
<div class="col"> <div class="card"> <!-- ํฌ์คํฐ ์ด๋ฏธ์ง ๋ฃ์ด์ฃผ๊ธฐ โญโญโญ --> <img src="https://movie-phinf.pstatic.net/20210728_221/1627440327667GyoYj_JPEG/movie_image.jpg" class="card-img-top" alt="..."> <div class="card-body"> <h5 class="card-title">์ฌ๊ธฐ์ ์ ๋ชฉ์ด ๋ค์ด๊ฐ๋๋ค! </h5> <p class="card-text">์ฌ๊ธฐ์๋ ๋ด์ฉ์ด ๋ค์ด๊ฐ์ง์. ํจ์. ์จ๋์ด๊ฐ ์ปจ๋์ ์ด ์ ์ข์ง๋ง ํด๋๊ฑฐ์ ๐โโ๏ธ </p> <!-- ๋ณํ ์์ญ --> <p> โญโญโญ </p> <!-- ์ฝ๋ฉํธ ์์ญ --> <p class="mycomment"> ์ฌ๊ธฐ์ ์ฝ๋ฉํธ๊ฐ ๋ค์ด๊ฐ๋๋ค. </p> </div> </div> </div>
์ฐ์ ์นด๋ ์ถ๊ฐ ์๋ํ๋ ์ฝ๋
function listing() { // ๊ธฐ์กด์ ์๋ ๊ฒ๋ค ์ง์์ผ, ์ ๋ฐ์ดํธ ํ๋ ๊ธฐ๋ฅ์ผ๋ก ๋ง๋ค ์ ์์. $('#cards-box').empty() $.ajax({ type: "GET", url: "http://spartacodingclub.shop/web/api/movie", data: {}, success: function (response) { let rows = response['movies'] for (let i = 0; i < rows.length; i++) { let title = rows[i]['title'] let desc = rows[i]['desc'] let image = rows[i]['image'] let star = rows[i]['star'] let comment = rows[i]['comment'] let temp_html = `<div class="col"> <div class="card"> <!-- ํฌ์คํฐ ์ด๋ฏธ์ง ๋ฃ์ด์ฃผ๊ธฐ โญโญโญ --> <img src="${image}" class="card-img-top" alt="..."> <div class="card-body"> <h5 class="card-title">${title}</h5> <p class="card-text">${desc}๐โโ๏ธ</p> <!-- ๋ณํ ์์ญ --> <p>โญโญโญ </p> <!-- ์ฝ๋ฉํธ ์์ญ --> <p class="mycomment">${comment}</p> </div> </div> </div>` $('#cards-box').append(temp_html) } } }) }
๊ฒฐ๊ณผ๋ฌผ
- ์ ์๋ํจ
- ์ ์๋ํจ
6. ๋ณ์ : javascript ๋ด์ฅ ํจ์ ์ฌ์ฉ
repeat ํจ์
- ์ง์ ํ ํ์๋งํผ, ํน์ ๋ถ๋ถ์ ๋ฐ๋ณต
// ๋ณ ์ด๋ฏธ์ง๋ฅผ ๋ฐ๋ณตํ๋๋ฐ star ๋ณ์์ ๋ด๊ธด ํ์๋งํผ ๋ฐ๋ณต! let star_image = 'โญ'.repeat(star)
- ์ง์ ํ ํ์๋งํผ, ํน์ ๋ถ๋ถ์ ๋ฐ๋ณต
๐ญ What i learned
- ajax ๋ฅผ ๋ถ์ฌ๋ ๊ด์ฐฎ์ ๋ผ๋๋ฅผ ๋จผ์ ๋ง๋ค๊ณ , ๊ทธ ๋ค์ ajax ๋ฅผ ๋ถ์ด๋ ๊ฒ! ex) ๋ก๋ฉ ๋์์ ๋, console ์ฐฝ์ '๋ก๋ฉ๋์์ต๋๋ค.' ๋ผ๊ณ ๋ณด์ด๊ฒ ํ๋ฉด ๋๋ค. -> ๊ทธ ๋ค์ ajax ๋ฅผ ๋ถ์ธ๋ค.
- ์ฝ๊ฒ ์๊ฐํ๋ฉด,
console.log
์๋ฆฌ์ajax
๊ฐ ๋ค์ด๊ฐ๋ค๊ณ ์๊ฐ.
- ์ฝ๊ฒ ์๊ฐํ๋ฉด,
- ๊ทธ๋ฆฌ๊ณ append ์ธ ๋, html ์ ๋๋ฌด ์ด๋ ต๊ฒ ์๊ฐํ ํ์ ์๊ณ , ๊ทธ๋ฅ body ๋ถ๋ถ์ ์๋ ๊ฒ๋ค ์ด๋ผ๊ณ ์๊ฐํด์ผ ํ๋ ค๋.
'[WEB & AI] (feat. ์ทจ์ค) > ์คํ๋ฅดํ์ฝ๋ฉํด๋ฝ_์น๊ฐ๋ฐ์ข ํฉ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
3-4_ํ์ด์ฌ ๊ธฐ์ด๊ณต๋ถ (feat ํ์ด์ฌ ๋ฌธ๋ฒ, ๋ณ์, ์๋ฃํ, ํจ์, ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ) (0) | 2023.10.08 |
---|---|
3-3_ํ์ด์ฌ ์์ํ๊ธฐ (feat. ํ์ด์ฐธ, vs code ์ค์น) (2) | 2023.10.08 |
3-1_3์ฃผ์ฐจ ์ค์น (feat. ํ์ด์ฌ, git bash) (0) | 2023.10.08 |
2-11_2์ฃผ์ฐจ ๋ & ์์ ์ค๋ช (0) | 2023.10.06 |
2-10_Quiz_Ajax ์ฐ์ตํ๊ธฐ(2) (2) | 2023.10.06 |