๐ฅ ์๋ฒ - ํด๋ผ์ด์ธํธ ํต์
๐ 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 |