상품(item) API - GagiMarket/gagi GitHub Wiki

목차

상품 등록

Request

URL

POST /api/v1.0/items
Host: localhost:8080

Parameter

Name Type Description Required
itemName String 상품 이름 true
itemDescription String 상품 설명 true
itemCategory String 상품 카테고리 true
itemPrice int 상품 가격 true
itemLocation String 상품 거래 지역 true

Example

POST http://localhost:8080/api/v1.0/items
{
  "itemName": "에어팟 프로",
  "itemDescription": "애플 이어폰",
  "itemCategory": "전자기기",
  "itemPrice": 340000,
  "itemLocation": "가로수길"
}

Response

201 Created
{
  "itemId": 1,
  "itemName": "에어팟 프로",
  "itemDescription": "애플 이어폰",
  "itemCategory": "전자기기",
  "itemPrice": 340000,
  "itemLocation": "가로수길",
  "registerDate": "2021-01-22T11:12:23.257554",
  "updateDate": "2021-01-22T11:12:23.257554"
}

상품 조회(전체 조회)

Request

URL

GET /api/v1.0/items
Host: localhost:8080

Parameter

Name Type Description default Required example
page int 조회할 페이지 번호 0 false /api/v1.0/items?page=0
size int 한 페이지 당 조회 개수 20 false /api/v1.0/items?size=2
sort String 정렬 기준 asc false /api/v1.0/items?sort=itemId,desc

Example

GET http://localhost:8080/api/v1.0/items

Response

200 OK
{
    "content": [
        {
            "itemId": 1,
            "itemName": "에어팟 프로",
            "itemDescription": "애플 이어폰",
            "itemCategory": "전자기기",
            "itemPrice": 340000,
            "itemLocation": "가로수길",
            "registerDate": "2021-01-22T11:12:23.257554",
            "updateDate": "2021-01-22T11:12:23.257554"
        },
        {
            "itemId": 2,
            "itemName": "맥북 프로 16인치",
            "itemDescription": "애플 노트북",
            "itemCategory": "전자기기",
            "itemPrice": 3000000,
            "itemLocation": "강남",
            "registerDate": "2021-01-22T11:12:23.257554",
            "updateDate": "2021-01-22T11:12:23.257554"
        }
    ],
    "pageable": {

    },
    "totalPages": 1,
    "totalElements": 1,
    "last": true,
    "size": 20,
    "number": 0,
    "sort": {

    },
    "numberOfElements": 1,
    "first": true,
    "empty": false
}

상품 조회(단건 조회)

Request

URL

GET /api/v1.0/items/{itemId}
Host: localhost:8080

Example

GET http://localhost:8080/api/v1.0/items/1

Response

200 OK
{
  "itemId": 1,
  "itemName": "에어팟 프로",
  "itemDescription": "애플 이어폰",
  "itemCategory": "전자기기",
  "itemPrice": 340000,
  "itemLocation": "가로수길"
}

상품 검색(이름으로 검색)

Request

URL

GET /api/v1.0/items/search
Host: localhost:8080

Parameter

Name Type Description Required
itemName String 상품 이름 true

Parameter(Pagination)

Name Type Description default Required example
page int 조회할 페이지 번호 0 false /api/v1.0/items?page=0
size int 한 페이지 당 조회 개수 20 false /api/v1.0/items?size=2
sort String 정렬 기준 asc false /api/v1.0/items?sort=itemId,desc

Example

GET http://localhost:8080/api/v1.0/items/search?itemName=프로

Response

200 OK
{
    "content": [
        {
            "itemId": 1,
            "itemName": "에어팟 프로",
            "itemDescription": "애플 이어폰",
            "itemCategory": "전자기기",
            "itemPrice": 340000,
            "itemLocation": "가로수길",
            "registerDate": "2021-01-22T11:12:23.257554",
            "updateDate": "2021-01-22T11:12:23.257554"
        },
        {
            "itemId": 2,
            "itemName": "맥북 프로 16인치",
            "itemDescription": "애플 노트북",
            "itemCategory": "전자기기",
            "itemPrice": 3000000,
            "itemLocation": "강남",
            "registerDate": "2021-01-22T11:12:23.257554",
            "updateDate": "2021-01-22T11:12:23.257554"
        }
    ],
    "pageable": {

    },
    "totalPages": 1,
    "totalElements": 1,
    "last": true,
    "size": 20,
    "number": 0,
    "sort": {

    },
    "numberOfElements": 1,
    "first": true,
    "empty": false
}

상품 수정

Request

URL

PUT /api/v1.0/items/{itemId}
Host: localhost:8080

Parameter

Name Type Description Required
itemName String 상품 이름 true
itemDescription String 상품 설명 true
itemCategory String 상품 카테고리 true
itemPrice int 상품 가격 true
itemLocation String 상품 거래 지역 true

Example

PUT http://localhost:8080/api/v1.0/items/1
{
  "itemName": "에어팟 프로",
  "itemDescription": "애플 이어폰",
  "itemCategory": "전자기기",
  "itemPrice": 200000,
  "itemLocation": "가로수길"
}

Response

201 Created
{
  "itemId": 1,
  "itemName": "에어팟 프로",
  "itemDescription": "애플 이어폰",
  "itemCategory": "전자기기",
  "itemPrice": 200000,
  "itemLocation": "가로수길",
  "registerDate": "2021-01-22T11:12:23.257554",
  "updateDate": "2021-01-22T11:12:23.257554"
}

상품 삭제

Request

URL

DELETE /api/v1.0/items/{itemId}
Host: localhost:8080

Example

DELETE http://localhost:8080/api/v1.0/items/1

Response

200 OK