Hello creators ๐
3-1_์คํ๋ฅดํํผ๋์์ OpenAPI ๋ถ์ฌ๋ณด๊ธฐ (feat. ์ํ ํ์ ์นด๋, ajax append(), api ์ฐ๊ฒฐ) ๋ณธ๋ฌธ
[WEB & AI] (feat. ์ทจ์ค)/ํ๋ก ํธ&๋ฐฑ์๋
3-1_์คํ๋ฅดํํผ๋์์ OpenAPI ๋ถ์ฌ๋ณด๊ธฐ (feat. ์ํ ํ์ ์นด๋, ajax append(), api ์ฐ๊ฒฐ)
๋ถ์๋งค๋_HA 2023. 1. 29. 16:23728x90
๋ฐ์ํ
โ . ์ด๋ฒ ํ์ฐจ ํ์ต ๋ชฉํ (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 ๋ถ๋ถ์ ์๋ ๊ฒ๋ค ์ด๋ผ๊ณ ์๊ฐํด์ผ ํ๋ ค๋.
728x90
๋ฐ์ํ
'[WEB & AI] (feat. ์ทจ์ค) > ํ๋ก ํธ&๋ฐฑ์๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Comments