장바구니
React 데스크탑 장바구니 애플리케이션
다수의 컴포넌트를 페이지로 구성하고 복잡해진 상태를 관리합니다.
✔️ 데스크탑 타겟의 웹 앱을 구현하며 구매로 이어지는 것에 끊김이 없고 재방문을 고려한 UI/UX에 대해 고민해봅니다. ✔️ 다른 라이브러리나 프레임워크 없이 오로지 React만으로 상태를 관리하고 컴포넌트를 설계합니다. ✔️ 상태 관리를 위한 전략을 설계하고 구상하여 확장을 열어둡니다. ✔️ Router를 활용해 여러 페이지 전환을 고려합니다. ✔️ CSS Template
기본적으로 MSW 를 필수로 하고 있으며 서버는 필수가 아닙니다.
Schema는 참고를 위함이니 자유롭게 변경 가능합니다.
자유롭게 Mock Server를 활용해주세요.
{ "response" : [ { "id" : 1 , "price" : 10000 , "name" : "치킨" , "imageUrl" : "http://example.com/chicken.jpg" }, { "id" : 2 , "price" : 20000 , "name" : "피자" , "imageUrl" : "http://example.com/pizza.jpg" } ] }
Copy
method
uri
POST
/products
{ "requestBody" : { "products" : { "price" : 10000 , "name" : "치킨" , "imageUrl" : "http://example.com/chicken.jpg" } } }
Copy
method
uri
GET
/products/{id}
{ "response" : { "id" : 1 , "price" : 10000 , "name" : "치킨" , "imageUrl" : "http://example.com/chicken.jpg" } }
Copy
method
uri
DELETE
/products/{id}
{ "response" : {} }
Copy
{ "response" : { "id" : 1 , "product" : { "name" : "test" , "price" : 1234 , "imageUrl" : "test.com" , "id" : 1 }, }, { "id" : 5 , "product" : { "name" : "tes11111t" , "price" : 1234 , "imageUrl" : "test.com" , "id" : 10 } }, }
Copy
{ "requestBody" : { "product" : { "id" : 10 , "name" : "tes11111t" , "price" : 1234 , "imageUrl" : "test.com" } } }
Copy
method
uri
DELETE
/carts/{cartId}
{ "response" : {} }
Copy
{ "requestBody" : { "orderDetails" : [ { "id" : 1 , "price" : 10000 , "name" : "치킨" , "imageUrl" : "http://example.com/chicken.jpg" , "quantity" : 5 }, { "id" : 2 , "price" : 20000 , "name" : "피자" , "imageUrl" : "http://example.com/pizza.jpg" , "quantity" : 3 } ] } }
Copy
{ "response" : [ { "id" : 1 , "orderDetails" : [ { "id" : 1 , "price" : 10000 , "name" : "치킨" , "imageUrl" : "http://example.com/chicken.jpg" , "quantity" : 5 }, { "id" : 2 , "price" : 20000 , "name" : "피자" , "imageUrl" : "http://example.com/pizza.jpg" , "quantity" : 3 } ] }, { "id" : 2 , "orderDetails" : [ { "id" : 1 , "price" : 10000 , "name" : "치킨" , "imageUrl" : "http://example.com/chicken.jpg" , "quantity" : 5 }, { "id" : 2 , "price" : 20000 , "name" : "피자" , "imageUrl" : "http://example.com/pizza.jpg" , "quantity" : 3 } ] } ] }
Copy
method
uri
GET
/orders/{id}
{ "response" : { "id" : 1 , "orderDetails" : [ { "id" : 1 , "price" : 10000 , "name" : "치킨" , "imageUrl" : "http://example.com/chicken.jpg" , "quantity" : 5 }, { "id" : 2 , "price" : 20000 , "name" : "피자" , "imageUrl" : "http://example.com/pizza.jpg" , "quantity" : 3 } ] } }
Copy