API 설계 - f-lab-edu/today-commerce GitHub Wiki

1. 사용자 API

1.1 회원 가입

  • [POST] /api/users
// request body
{
    name: '이광규',
    email: '[email protected]',
    password: '1234',
    phone: '01012345689',
    userType: 'CUSTOMER'
}

1.2 회원정보 수정

  • [PUT] /api/users/{userId}
// request body
{
    name: '이광규',
    email: '[email protected]',
    password: '1234',
    phone: '01012345689',
    userType: 'CUSTOMER'
}

1.3 로그인

  • [POST] /api/users/login
// request body
{
    email: '[email protected]',
    password: '1234'
}

1.4 로그아웃

  • [POST] /api/users/logout
// request body
{
    email: '[email protected]'
}

1.5 내 정보 조회

  • [GET] /api/users/{userId}

2. 상품 API

2.1 상품 목록 조회(페이징 처리)

  • [GET] /api/products

2.2 상품 상세 정보 조회

  • [GET] /api/products/{productId}

2.3 상품 검색

  • [GET] /api/products/search?kwd={kwd}

2.4 상품 등록(판매자만 가능)

  • [POST] /api/products
// request body
{
    name: '듀얼 모니터 받침대',
    description: '',
    price: 10000,
    inventory: 30
}

2.5 상품 정보 수정(판매자만 가능)

  • [PUT] /api/products/{productID}
// request body
{
    name: '듀얼 모니터 받침대',
    description: '',
    price: 10000,
    inventory: 30
}

3. 주문 API

3.1 주문하기

  • [POST] /orders
// request body
{
    customer: {
        userId: 1,
        name: '이광규'
    },
    products: [
        {
            productId: 1,
            productName: 'productName 1',
            quantity: 1,
            price: 5000
        },
        {
            productId: 2,
            productName: 'productName 2',
            quantity: 1,
            price: 5000
        }
    ],
    shippingCost: 3000,
    totalPrice: 13000
}

4. 결제 API

4.1 결제하기

  • [POST] /payments
// request body
{
    orderId: 1,
    paymentType: 'TOSSPAY',
    amount: 13000
}