RESTful API 설계에 대한 고민
카테고리 별로 리스트를 가져오는 API 에서 category 정보를 어떻게 받을 것인가?
- url 파라미터로 받을 것인가? /products/{category}
- query 로 받을 것인가? /product?category=driver
ChatGPT 답변
If the category is a fundamental part of the resource, using a URL parameter may be more appropriate.
If the category is just one of many filtering options, using a query parameter may be more flexible.
-> 카테고리 분류는 서비스 내용상 핵심적이고 고정적인 부분임
-> 디테일 페이지의 id params 로 인해 /category/ 프리픽스를 붙여서 분리하였다
-> /:category 와 /:id 를 함께 쓰면 express 는 무조건 앞서있는 라우트로 이동 시킨다
@Get('/')
getProducts(@Query() query) {
return this.productsService.getProducts({
size: query.size,
page: query.page,
});
}
@Get('/category/:category')
getProductsByCategory(@Query() query, @Param() params) {
return this.productsService.getProductsByCategory({
category: params.category,
size: query.size,
page: query.page,
});
}
@Get('/:id')
getProductById(@Param() params) {
// TODO : 리뷰 테이블 조회하여 가져오기
return this.productsService.getProductById(params.id);
}
'Diary' 카테고리의 다른 글
[1D1C] 0319 기록 (3) | 2024.03.19 |
---|---|
[1D1C] 0220 기록 (0) | 2024.02.20 |
[1D1C] 0215 기록 (0) | 2024.02.16 |
[1D1C] 0214 기록 (0) | 2024.02.15 |
[1D1C] 0213 기록 (0) | 2024.02.14 |