카테고리별 상품 목록 조회 API 설계.
‘신상품', '인기순', '낮은 가격', '높은 가격’ 로 정렬 방식 변경 가능.
GET /products
설명: 카테고리별 상품 목록을 조회합니다. 전체 카테고리로 조회도 가능하며, 정렬 방식을 변경할 수 있습니다.
요청 파라미터:
응답 데이터 예시:
/products?sort=new
에 대한 예시 응답 데이터
{
"status": "OK",
"code": 200,
"message": "상품 조회가 완료되었습니다.",
"result": {
"products": [
{
"id": 20,
"category_id": 10,
"product_name": "ProductT 20",
"main_image_id": 35,
"main_image_url": "<https://picsum.photos/200/300?random=34>",
"regular_price": 20000,
"discount_rate": 23,
"sale_price": 15400,
"min_quantity": 20
},
{
"id": 19,
"category_id": 9,
"product_name": "ProductS 19",
"main_image_id": 34,
"main_image_url": "<https://picsum.photos/200/300?random=33>",
"regular_price": 19000,
"discount_rate": 22,
"sale_price": 14820,
"min_quantity": 19
},
{
"id": 18,
"category_id": 8,
"product_name": "ProductR 18",
"main_image_id": 33,
"main_image_url": "<https://picsum.photos/200/300?random=32>",
"regular_price": 18000,
"discount_rate": 23,
"sale_price": 13860,
"min_quantity": 18
},
{
"id": 17,
"category_id": 7,
"product_name": "ProductQ 17",
"main_image_id": 32,
"main_image_url": "<https://picsum.photos/200/300?random=31>",
"regular_price": 17000,
"discount_rate": 12,
"sale_price": 14960,
"min_quantity": 17
},
{
"id": 16,
"category_id": 6,
"product_name": "ProductP 16",
"main_image_id": 31,
"main_image_url": "<https://picsum.photos/200/300?random=30>",
"regular_price": 16000,
"discount_rate": 14,
"sale_price": 13760,
"min_quantity": 16
},
{
"id": 15,
"category_id": 5,
"product_name": "ProductO 15",
"main_image_id": 15,
"main_image_url": "<https://picsum.photos/200/300?random=14>",
"regular_price": 15000,
"discount_rate": 11,
"sale_price": 13350,
"min_quantity": 15
},
{
"id": 14,
"category_id": 4,
"product_name": "ProductN 14",
"main_image_id": 14,
"main_image_url": "<https://picsum.photos/200/300?random=13>",
"regular_price": 14000,
"discount_rate": 11,
"sale_price": 12460,
"min_quantity": 14
},
{
"id": 13,
"category_id": 3,
"product_name": "ProductM 13",
"main_image_id": 13,
"main_image_url": "<https://picsum.photos/200/300?random=12>",
"regular_price": 13000,
"discount_rate": 11,
"sale_price": 11570,
"min_quantity": 13
},
{
"id": 12,
"category_id": 2,
"product_name": "ProductL 12",
"main_image_id": 12,
"main_image_url": "<https://picsum.photos/200/300?random=11>",
"regular_price": 12000,
"discount_rate": 1,
"sale_price": 11880,
"min_quantity": 12
},
{
"id": 11,
"category_id": 1,
"product_name": "ProductK 11",
"main_image_id": 11,
"main_image_url": "<https://picsum.photos/200/300?random=10>",
"regular_price": 11000,
"discount_rate": 5,
"sale_price": 10450,
"min_quantity": 11
},
{
"id": 10,
"category_id": 10,
"product_name": "ProductJ 10",
"main_image_id": 10,
"main_image_url": "<https://picsum.photos/200/300?random=9>",
"regular_price": 10000,
"discount_rate": 3,
"sale_price": 9700,
"min_quantity": 10
},
{
"id": 9,
"category_id": 9,
"product_name": "ProductI 9",
"main_image_id": 9,
"main_image_url": "<https://picsum.photos/200/300?random=8>",
"regular_price": 9000,
"discount_rate": 2,
"sale_price": 8820,
"min_quantity": 9
},
{
"id": 8,
"category_id": 8,
"product_name": "ProductH 8",
"main_image_id": 8,
"main_image_url": "<https://picsum.photos/200/300?random=7>",
"regular_price": 8000,
"discount_rate": 45,
"sale_price": 4400,
"min_quantity": 8
},
{
"id": 7,
"category_id": 7,
"product_name": "ProductG 7",
"main_image_id": 7,
"main_image_url": "<https://picsum.photos/200/300?random=6>",
"regular_price": 7000,
"discount_rate": 40,
"sale_price": 4200,
"min_quantity": 7
},
{
"id": 6,
"category_id": 6,
"product_name": "ProductF 6",
"main_image_id": 6,
"main_image_url": "<https://picsum.photos/200/300?random=5>",
"regular_price": 6000,
"discount_rate": 35,
"sale_price": 3900,
"min_quantity": 6
},
{
"id": 5,
"category_id": 5,
"product_name": "ProductE 5",
"main_image_id": 5,
"main_image_url": "<https://picsum.photos/200/300?random=4>",
"regular_price": 5000,
"discount_rate": 30,
"sale_price": 3500,
"min_quantity": 5
},
{
"id": 4,
"category_id": 4,
"product_name": "ProductD 4",
"main_image_id": 4,
"main_image_url": "<https://picsum.photos/200/300?random=3>",
"regular_price": 4000,
"discount_rate": 25,
"sale_price": 3000,
"min_quantity": 4
},
{
"id": 3,
"category_id": 3,
"product_name": "ProductC 3",
"main_image_id": 3,
"main_image_url": "<https://picsum.photos/200/300?random=2>",
"regular_price": 3000,
"discount_rate": 20,
"sale_price": 2400,
"min_quantity": 3
},
{
"id": 2,
"category_id": 2,
"product_name": "ProductB 2",
"main_image_id": 2,
"main_image_url": "<https://picsum.photos/200/300?random=1>",
"regular_price": 2000,
"discount_rate": 15,
"sale_price": 1700,
"min_quantity": 2
},
{
"id": 1,
"category_id": 1,
"product_name": "ProductA 1",
"main_image_id": 1,
"main_image_url": "<https://picsum.photos/200/300?random=0>",
"regular_price": 1000,
"discount_rate": 10,
"sale_price": 900,
"min_quantity": 1
}
]
}
}
이 API는 HTTP GET 방식으로 요청하며, URL 형식은 다음과 같습니다.
/products?sort=new
/products?categoryId={categoryId}&sort=new
/products?sort=popular
/products?categoryId={categoryId}&sort=popular
/products?sort=low_price
/products?categoryId={categoryId}&sort=low_price
/products?sort=high_price
/products?categoryId={categoryId}&sort=high_price
여기서 {categoryId}
는 실제 카테고리 ID로 대체해야 합니다.
배포 이후 예시
서버 주소: http://43.201.195.195:8080
전체 카테고리, 신상품 순: