카테고리별 도서 조회 , 전체 도서 조회
const allBooks = (req, res) => {
let { category_id } = req.query;
if (category_id) {
let sql = `SELECT * FROM books WHERE category_id =?`;
conn.query(sql, category_id,
(err, results) => {
if (err) {
console.log(err);
return res.status(StatusCodes.BAD_REQUEST).end();
}
if (results.length)
return res.status(StatusCodes.OK).json(results);
else
return res.status(StatusCodes.NOT_FOUND).end();
}
)
}
else {
let sql = `SELECT * FROM books`;
conn.query(sql,
(err, results) => {
if (err) {
console.log(err);
return res.status(StatusCodes.BAD_REQUEST).end();
}
return res.status(StatusCodes.OK).json(results);
}
)
}
};
query 를 통해 받은 category_id 가 있으면 카테고리별 도서 목록 조회를 수행하고, 없으면 전체 도서 조회를 수행한다.
개별 도서 조회
const bookDetail = (req, res) => {
let { id } = req.params;
let sql = `SELECT * FROM books WHERE id =?`;
conn.query(sql, id,
(err, results) => {
if (err) {
console.log(err);
return res.status(StatusCodes.BAD_REQUEST).end();
}
if (results.length)
return res.status(StatusCodes.OK).json(results[0]);
else
return res.status(StatusCodes.NOT_FOUND).end();
}
)
};
url 에 입력된 id 값을 통해 해당 id를 가진 도서가 있으면 도서 정보를 반환하고, 없을 경우에는 404(NOT FOUND) 상태 코드를 반환한다.
🌟 배운 점
오늘은 도서 조회 API 를 구현했다. 이전에는 강의를 들으면서 똑같이 따라하는 것에 집중했다면, 오늘은 강의를 듣기 전에 혼자 해보려고 노력했다. 이제 어느정도 익숙해져서 계속 반복하면서 했던 것들은 혼자 할 수 있게 되었다. 얼른 프론트엔드까지 배워서 완전한 웹사이트를 만들 수 있는 실력이 되었으면 좋겠다. 그러기 위해서 오류가 났을 때도 혼자 해결하려는 노력을 더 해야겠다.
'데브코스 > 도서 판매 쇼핑몰' 카테고리의 다른 글
API 구현하기(4): 좋아요 추가, 삭제 (2) | 2024.10.08 |
---|---|
API 구현하기(3): 신간 도서 조회, 도서 목록 조회 페이징 (0) | 2024.10.07 |
API 구현하기(1) : 회원 가입, 로그인, 비밀번호 초기화 (0) | 2024.10.04 |
API 수정 및 ERD 설계 (2) | 2024.09.30 |
API 설계 (1) | 2024.09.27 |