๐ฅ ์๋ฒ - ํด๋ผ์ด์ธํธ ํต์
๐ CRUD
- API: ํด๋ผ์ด์ธํธ, ์๋ฒ์ ๊ฐ์ ์๋ก ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์์ ์์ฒญ๊ณผ ์๋ต์ ์ฃผ๊ณ ๋ฐ์ ์ ์๊ฒ ๋ง๋ ์ฒด๊ณ [1]
- Create(์์ฑํด์ค), Read(๋ถ๋ฌ์ค), Update(๋ฐ๊ฟ์ค), Delete(์ญ์ ํด์ค)๋ก ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญํ ๋ ์ด๋ค ์์ฒญ ์ข ๋ฅ์ธ์ง ์๋ตํ๋ ์๋ฒ์ ์ ๋ณด๋ฅผ ์๋ ค์ฃผ๋ ๊ฒ [1,2]
๐ RESTful API
CRUD vs REST: What's the Difference? [2]
- HTTP protocol ์ ๋ฐ์ดํฐ ์กฐ์์ ์ํ ๊ณ ์ ํ method (HTTP method)์ธ GET, POST, DELETE, PUT, PATCH ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์์ฉ ํ๋ก๊ทธ๋จ(์๋ฒ)๊ณผ ํด๋ผ์ด์ธํธ ํต์
- CRUD์ HTTP method๋ ์๋์ ๊ฐ์ด ๋์๋ ์ ์์ง๋ง, REST API๋ CRUD๋ณด๋ค ๋ ๋ง์ ๊ธฐ๋ฅ์ ํ๋ค.
CRUD | HTTP |
CREATE | POST/PUT |
READ | GET |
UPDATE | PUT/ POST/ PATCH |
DELETE | DELETE |
๐ JSON
- ๋ฐ์ดํฐ ํฌ๋งท
- ์์ฒญ๊ณผ ์๋ต์ ์ฃผ๊ณ ๋ฐ์ ๋์ ํ์
- Key : Value๋ก ์ด๋ฃจ์ด์ ธ ์์
๐ GET
์คํ๋ฅดํ์ฝ๋ฉํด๋ฝ ์น๊ฐ๋ฐ ์ข ํฉ๋ฐ 2์ฃผ์ฐจ [2]
- ํต์์ ์ผ๋ก ๋ฐ์ดํฐ ์กฐํ(Read)๋ฅผ ์์ฒญํ ๋ ์ฌ์ฉ
- ex> https://movie.naver.com/movie/bi/mi/basic.nhn?code=161967
์ ์ฃผ์๋ "?" ๊ธฐ์ ์ผ๋ก ๋ ๋ถ๋ถ์ผ๋ก ์ชผ๊ฐ์ง
'?' ๊ธฐ์ค์ผ๋ก ์๋ถ๋ถ์ <์๋ฒ์ฃผ์>, ๋ท๋ถ๋ถ์ [์ํ ๋ฒํธ]
https://movie.naver.com/movie/bi/mi/basic.nhn ์ code=161967 ์ ๋ฌํ์ฌ ํด๋น ์ ๋ณด๋ฅผ ๋ถ๋ฌ์ ๋ฌ๋ผ๊ณ ์์ฒญ
- GET ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ
? : "?" ์ดํ ๋ถํฐ ์ ๋ฌํ ๋ฐ์ดํฐ๊ฐ ์์ฑ๋๋ค.
& : ์ ๋ฌํ ๋ฐ์ดํฐ๊ฐ ๋ ์๋ค
ex> google.com/search?q=์์ดํฐ&sourceid=chrome&ie=UTF-8
์ ์ฃผ์๋ google.com์ search ์ฐฝ๊ตฌ์ ๋ค์ ์ ๋ณด๋ฅผ ์ ๋ฌํจ
q = ์์ดํฐ (๊ฒ์์ด)
sourceid = chrome (๋ธ๋ผ์ฐ์ ์ ๋ณด)
ie = UTF-8 (์ธ์ฝ๋ฉ ์ ๋ณด)
๐ฅ Ajax ๋ค๋ค๋ณด๊ธฐ
์คํ๋ฅดํ์ฝ๋ฉํด๋ฝ ์น๊ฐ๋ฐ ์ข ํฉ๋ฐ 2์ฃผ์ฐจ [2]
- Ajax๋ jQuery๋ฅผ ์ํฌํธํ ํ์ด์ง์์๋ง ๋์ ๊ฐ๋ฅ
๐ Ajax ๊ธฐ๋ณธ ๊ณจ๊ฒฉ
$.ajax({
type: "GET", // GET ๋ฐฉ์์ผ๋ก ์์ฒญํ๋ค.
url: "http://spartacodingclub.shop/sparta_api/seoulair", //์์ฒญํ api url
data: {}, // ์์ฒญํ๋ฉด์ ํจ๊ป ์ค ๋ฐ์ดํฐ (GET ์์ฒญ์์ ๋น์๋๊ธฐ)
success: function(response){ // ์๋ฒ์์ ์ค ๊ฒฐ๊ณผ๋ฅผ response๋ผ๋ ๋ณ์์ ๋ด์
console.log(response) // ์๋ฒ์์ ์ค ๊ฒฐ๊ณผ๋ฅผ ์ด์ฉํด์ ๋๋จธ์ง ์ฝ๋๋ฅผ ์์ฑ
}
})
GET ์์ฒญ์ url ๋ค์ ์๋์ ๊ฐ์ด ๋ถ์ฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ
http://naver.com?param=value&m2=value2
POST ์์ฒญ์ data:{} ์ ๋ฃ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ
data: { param: 'value', param2: 'value2' }.
response๋ json ํ์์ผ๋ก ๋์ด์๋ค.
๐ Tip
- ์๋์ ๊ฐ์ด response์ ๋ฐ์ดํฐ ๊ฐ๋ค์ console๋ก ์ฐ์ด์ ํ์ธํด๋ณด์
success: function(response){
console.log(response)
}
๐ Ajax ํต์ ์์ (GET ์์ฒญ)
<!doctype html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>jQuery ์ฐ์ตํ๊ณ ๊ฐ๊ธฐ!</title>
<!-- jQuery๋ฅผ import ํฉ๋๋ค -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<style type="text/css">
div.question-box {
margin: 10px 0 20px 0;
}
.bad {
color: red;
font-weight: bold;
}
</style>
<script>
function q1() {
// ์ฌ๊ธฐ์ ์ฝ๋๋ฅผ ์
๋ ฅํ์ธ์
$('#names-q1').empty();
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/seoulair",
data: {},
success: function (response) {
let rows = response["RealtimeCityAir"]["row"];
for (let i = 0; i < rows.length; i++) {
let gu_name = rows[i]['MSRSTE_NM'];
let gu_mise = rows[i]['IDEX_MVL'];
let temp_html = ''
if (gu_mise > 70) {
temp_html = `<li class="bad">${gu_name} : ${gu_mise}</li>`
} else {
temp_html = `<li>${gu_name} : ${gu_mise}</li>`
}
$('#names-q1').append(temp_html);
}
}
})
}
</script>
</head>
<body>
<h1>jQuery+Ajax์ ์กฐํฉ์ ์ฐ์ตํ์!</h1>
<hr />
<div class="question-box">
<h2>1. ์์ธ์ OpenAPI(์ค์๊ฐ ๋ฏธ์ธ๋จผ์ง ์ํ)๋ฅผ ์ด์ฉํ๊ธฐ</h2>
<p>๋ชจ๋ ๊ตฌ์ ๋ฏธ์ธ๋จผ์ง๋ฅผ ํ๊ธฐํด์ฃผ์ธ์</p>
<p>์
๋ฐ์ดํธ ๋ฒํผ์ ๋๋ฅผ ๋๋ง๋ค ์ง์ ๋ค ์๋ก ์์ฌ์ ธ์ผ ํฉ๋๋ค.</p>
<button onclick="q1()">์
๋ฐ์ดํธ</button>
<ul id="names-q1">
</ul>
</div>
</body>
</html>
Source
'Language > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] [์คํ๋ฅดํ์ฝ๋ฉํด๋ฝ ์น] JQuery ๋ค๋ค๋ณด๊ธฐ (0) | 2022.07.08 |
---|---|
[JS] JavaScript ๊ธฐ์ด ๋ฌธ๋ฒ (0) | 2022.07.04 |