const conn = require("../mariadb");
const { StatusCodes } = require("http-status-codes");
const getAllBooks = (req, res) => {
let sql = "SELECT * FROM books";
conn.query(sql, (err, result) => {
if (err) {
return res.status(StatusCodes.BAD_REQUEST).end();
}
return res.status(StatusCodes.OK).json(result);
});
};
const getBookById = (req, res) => {
//parseInt ์ ์ฉ ์, id ์์ฑ์ ๊ตฌ์กฐ ๋ถํด ์๋
//parseInt๋ ์ซ์๋ฅผ ๋ฐํํ๋ฏ๋ก, ๊ตฌ์กฐ ๋ถํด ๋ถ๊ฐ. '
//parseInt๋ ๋ฌธ์์ด์ ์ ์๋ก ๋ณํํ๋๋ฐ, ๊ฐ์ฒด์ธ req.parmas ์ ์ฒด๋ฅผ ์ ๋ฌํ๋ ์ค๋ฅ๊ฐ ์์๋ค.
let { id } = req.params;
let sql = "SELECT * FROM books WHERE id = ?";
conn.query(sql, id, (err, result) => {
if (err) {
return res.status(StatusCodes.BAD_REQUEST).end();
}
if (result[0]) return res.status(StatusCodes.OK).json(result[0]);
else return res.status(StatusCodes.NOT_FOUND).end();
});
};
const getBooksByCategory = (req, res) => {};
module.exports = {
getAllBooks,
getBookById,
getBooksByCategory,
};
์ฟผ๋ฆฌ๋ก ์นดํ ๊ณ ๋ฆฌ ์์ด๋ ์กฐํ
const getBooksByCategory = (req, res) => {
let { category_id } = req.query;
let sql = "SELECT * FROM books WHERE category_id = ?";
conn.query(sql, category_id, (err, result) => {
if (err) {
return res.status(StatusCodes.BAD_REQUEST).end();
}
if (result.length) return res.status(StatusCodes.OK).json(result);
else return res.status(StatusCodes.NOT_FOUND).end();
});
};
/ router ๋ฐฐ์น์ ๋ฐ๋ผ ์ฐ์ ์์ ์ค์ ->์ฟผ๋ฆฌ์ ์๊ด์์ด ๋ชจ๋ ๊ฒฐ๊ณผ ์ถ๋ ฅํ๋ ๋ฌธ์ ๋ฐ์
router ๋ฐฐ์น ์์ ๋ณ๊ฒฝ. ๋จผ์ ์ฟผ๋ฆฌ ํํฐ๋ง ํ ์ ์ฒด ์กฐํ ์ํ
์ด๋ฐ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด, ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๋ api ์์ฒญ์๋ 400 bad request ์ค๋ฅ ๋ฐํ
์ด๋ป๊ฒ??
API๋ฅผ ํฉ์น๋ค.
์ฟผ๋ฆฌ ์คํธ๋ง์ด ์์ผ๋ฉด ์นดํ ๊ณ ๋ฆฌ, ์์ผ๋ฉด ์ ์ฒด๋ก ๋ถ๊ธฐ์ฒ๋ฆฌ
const getAllBooks = (req, res) => {
let { category_id } = req.query;
if (category_id) {
let sql = "SELECT * FROM books WHERE category_id = ?";
conn.query(sql, category_id, (err, result) => {
if (err) {
return res.status(StatusCodes.BAD_REQUEST).end();
}
if (result.length) return res.status(StatusCodes.OK).json(result);
else return res.status(StatusCodes.NOT_FOUND).end();
});
} else {
let sql = "SELECT * FROM books";
conn.query(sql, (err, result) => {
if (err) {
return res.status(StatusCodes.BAD_REQUEST).end();
}
return res.status(StatusCodes.OK).json(result);
});
}
};
์นดํ ๊ณ ๋ฆฌ id์ ์นดํ ๊ณ ๋ฆฌ๋ช ์ฒ๋ฆฌ๋ฅผ ์ํ ์ ์ฒด ์กฐํ api ํ์
join์ ์ฌ์ฉํ์ฌ, api ์์ฒญ ์ id๊ฐ ์๋ ์นดํ ๊ณ ๋ฆฌ๋ช ์ผ๋ก ์๋ต ๋ณด๋ด๋๋ก ์ฒ๋ฆฌ
'๐๏ธํ๋ก๊ทธ๋๋จธ์ค ๋ฐ๋ธ์ฝ์ค > ํ๋ก์ ํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐ๋ธ์ฝ์ค] ์ข์์ api ๊ตฌํ (0) | 2025.05.19 |
---|---|
[๋ฐ๋ธ์ฝ์ค] ๋์ ๋ชฉ๋ก ์กฐํ ํ์ด์ง ์ ์ฉ API (2) | 2025.05.19 |
[๋ฐ๋ธ์ฝ์ค] ํ์๊ฐ์ , ๋ก๊ทธ์ธ ๊ตฌํ (0) | 2025.05.15 |
[๋ฐ๋ธ์ฝ์ค] ๋ถ์คํ ์ด ํ๋ก์ ํธ #1. app.js ๋ฐ ์ ์ api ๋ผ์ฐํฐ ํ ํ๋ฆฟ (0) | 2025.05.13 |
[๋ฐ๋ธ์ฝ์ค] BOOK STORE ํ๋ก์ ํธ API ์ค๊ณ(2) (0) | 2025.05.09 |