웹 풀사이클 데브코스 TIL [Day 33] - 이미지, 도서 API

JaeKyung Hwang·2024년 1월 3일
0
post-thumbnail

2024.01.03(수)

🖼️picsum

🔗Lorem Picsum

sample 이미지는 picsum api 사용

  • picsum을 사용하면 book_image table이 필요 없어지는데 그래도 나는 사용해볼 생각이다.
  • ERD상으로는 일단 book table은 main_image_id만 가지고 있고 이 id는 book_image의 id이다.
  • 나중에 도서 상세 정보를 위해 해당 도서의 모든 이미지들을 받아오려면 오늘 추가한 카테고리 API처럼 이미지 API를 따로 만들어야 할 것 같다.

📖도서 API URI

다음 두 기능이 HTTP Method도 동일하고 router의 path도 동일해서 문제가 발생한다.

  • 전체 도서 조회
    • GET
    • /books
  • 카테고리별 도서 목록 조회
    • GET
    • /books?categoryId={categoryId}&new={boolean}

query가 있는데 왜 path가 똑같냐고 생각할 수 있지만 URI 상의 query는 req.query에 담겨오기 때문에 router의 path 자체는 전체 도서 조회와 같은 /books가 된다.
이를 해결하기 위해 req.query에 값이 있는지 확인하고 routing해주는 간단히 분기 로직을 작성했다.

const booksRequestHandler = (req, res) => {
    // 추후 express-validator 사용 (지금은 간단히 분기 로직 구현)
    const { categoryId, new: isNew } = req.query;
    if (categoryId || isNew) {
        getBooksByCategory(req, res);
    } else {
        getAllBooks(req, res);
    }
};
profile
이것저것 관심 많은 개발자👩‍💻

0개의 댓글