
๐ฏ Express๋ฅผ ์ฌ์ฉํ CRUD API๋ฅผ ๊ตฌํํ๊ณ , HTTP ์ํ ์ฝ๋ ๊ฐ๋ ์ ์ดํดํฉ๋๋ค.
DELETE )// ๊ฐ๋ณ ์ญ์ ์์ฒญ (DELETE)
app.delete('/books/:id', (req, res) => {
let { id } = req.params;
id = parseInt(id);
const book = db.get(id);
if (!book) {
res.json({
message: `์์ฒญํ์ ${id}๋ฒ์ ์๋ ์ฑ
์
๋๋ค.`,
});
} else {
db.delete(id);
res.json({
message: `${book.title} ์ฑ
์ด ์ญ์ ๋์์ต๋๋ค.`,
});
}
});
์ฑ ์ด ์กด์ฌํ์ง ์์ผ๋ฉด "์์ฒญํ์ id๋ฒ ์ฑ ์ ์ฐพ์ ์ ์์ต๋๋ค." ๋ฉ์์ง๋ฅผ ๋ฐํํฉ๋๋ค.
์ฑ
์ด ์กด์ฌํ๋ฉด db.delete(id)๋ก ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ณ "${book.title} ์ฑ
์ด ์ญ์ ๋์์ต๋๋ค." ๋ฉ์ธ์ง๋ฅผ ๋ฐํํฉ๋๋ค.
DELETE )// ์ ์ฒด ์ญ์ ์์ฒญ (DELETE)
app.delete('/books', (req, res) => {
let msg = '';
if (db.size >= 1) {
db.clear();
msg = '๋ชจ๋ ์ฑ
์ด ์ญ์ ๋์์ต๋๋ค.';
} else {
msg = '์ญ์ ํ ์ฑ
์ด ์์ต๋๋ค.';
}
res.json({
message: msg,
});
});
๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฝ์ฐ, db.clear()๋ก ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ญ์ ํ๊ณ , "๋ชจ๋ ์ฑ
์ด ์ญ์ ๋์์ต๋๋ค" ๋ฉ์ธ์ง๋ฅผ ๋ฐํํฉ๋๋ค.
๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฝ์ฐ, "์ญ์ ํ ์ฑ ์ด ์์ต๋๋ค." ๋ฉ์ธ์ง๋ฅผ ๋ฐํํฉ๋๋ค.
PUT )// ๊ฐ๋ณ ์์ (PUT)
app.put('/books/:id', (req, res) => {
let { id } = req.params;
id = parseInt(id);
const book = db.get(id);
if (!book) {
res.json({
message: `์์ฒญํ์ ${id}๋ฒ์ ์๋ ์ฑ
์
๋๋ค.`,
});
} else {
let existingTitle = book.title;
let newTitle = req.body.title;
bexistingTitle = newTitle;
db.set(id, book);
res.json({
message: `${existingTitle} ์ฑ
์ ์ด๋ฆ์ด ${newTitle} (์ผ)๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค.`,
});
}
});
๋ณธ๋ ์ ๋ชฉ์ existingTitle ๋ณ์์ ์ ์ฅํ๊ณ , ์๋ก์ด ์ ๋ชฉ์ newTitle์ ์ ์ฅํ์ฌ ๊ฐ์ ๋ฎ์ด์์๋๋ค.
db.set(id)๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํด์ฃผ๊ณ , "existingTitle ์ฑ
์ ์ด๋ฆ์ด newTitle (์ผ)๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค." ๋ฉ์ธ์ง๋ฅผ ๋ฐํํฉ๋๋ค.
์ฝ๋์ ๊ธฐ๋ฅ์ ์ ์งํ๋ฉด์ ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ํ๋ ๊ณผ์ ์ ๋๋ค.
๐ค ์ ํ์ํ ๊ฑธ๊น?
- ์ฝ๋ ๊ฐ๋ ์ฑ ํฅ์
- ์ฑ๋ฅ ์ต์ ํ
- ์์ ์ฑ ํฅ์
๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ ์ (ex. API URL ์ค๊ณ ์์ )
๋์ผํ ์๋ฌ๊ฐ ๋ฐ๋ณต์ ์ผ๋ก ๋ฐ์ํ ๋
โ ๏ธ ๋ฐฐํฌ, ์ด์ ์ง์ ์๋ ๊ธ์ง
ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์์ฒญ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋
๋๋ค.

์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌ๋์์์ ๋ํ๋
๋๋ค. (GET, PUT, DELETE ์ฑ๊ณต ์ ์ฃผ๋ก ์ฌ์ฉ)
์๋ก์ด ๋ฆฌ์์ค๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์์ฑ๋์์์ ๋ํ๋
๋๋ค. (POST ์์ฒญ ์ฑ๊ณต ์ ์ฌ์ฉ)
์์ฒญ์ด ์ฑ๊ณตํ์ง๋ง ๋ฐํํ ๋ด์ฉ์ด ์์์ ๋ํ๋
๋๋ค. (DELETE ์์ฒญ ํ ๊ฒฐ๊ณผ๊ฐ ํ์ ์์ ๋)
ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ์๋ชป๋จ์ ๋ํ๋ ๋๋ค. (ex. ํ์ ํ๋ ๋๋ฝ)
์๋ฒ๊ฐ ์์ฒญ์ ์ดํดํ์ง๋ง, ๊ถํ์ด ์์ด ๊ฑฐ๋ถ๋จ์ ๋ํ๋ ๋๋ค. (ex. ๊ด๋ฆฌ์ ํ์ด์ง ์ ๊ทผ ์ ํ)
: ์๋ฒ๊ฐ ์์ฒญํ ํ์ด์ง๋ฅผ ์ฐพ์ ์ ์์์ ๋ํ๋
๋๋ค. (์๋ชป๋ URL ์์ฒญ)

์๋ฒ์์ ์๊ธฐ์น ์์ ์ค๋ฅ ๋ฐ์ํ ๊ฒ์ ๋ํ๋ ๋๋ค.
์๋ฒ๊ฐ ๊ณผ๋ถํ ์ํ์ด๊ฑฐ๋ ์ ์ง๋ณด์ ์ค์ผ๋ก ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์์ ๋ํ๋ ๋๋ค.
HTTP ์ํ ์ฝ๋๋ก ํด๋ผ์ด์ธํธ์ ์๋ฒ ์์ฒญ ๊ฒฐ๊ณผ๋ฅผ ํ ๋์ ์ดํดํ ์ ์๋ ์์๋ก์ ์ญํ ์ด ์ค์ํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค.