Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

5주차 과제 배민 API + ERD #9

Open
YangDaJin0104 opened this issue Nov 15, 2024 · 0 comments
Open

5주차 과제 배민 API + ERD #9

YangDaJin0104 opened this issue Nov 15, 2024 · 0 comments

Comments

@YangDaJin0104
Copy link
Collaborator

YangDaJin0104 commented Nov 15, 2024

🔖API 명세서

api

특정 섹션 카테고리 목록 조회

Description

특정 섹션에 해당하는 카테고리 목록을 조회합니다. 기본적으로 표시되는 카테고리와 "{section}더보기"를 통해 추가로 표시될 카테고리 항목을 함께 반환합니다.


Request Header

name type description
     
  • categories와 additionalItems: 카테고리는 요청 섹션에 따라 데이터가 없을 수도 있으므로 null을 허용합니다.

⭕Success⭕

200 Ok

{
  "result": "Success",
  "categories": [
    {
      "id": "1",
      "name": "치킨",
      "icon_url": "chicken.png"
    },
    {
      "id": "2",
      "name": "중식",
      "icon_url": "chinese_food.png"
    }
    // 추가 카테고리정보
  ],
  "additionalItems": [
    {
      "id": "3",
      "name": "돈까스/회",
      "icon_url": "pork_cutlet.png"
    },
    {
      "id": "4",
      "name": "피자",
      "icon_url": "pizza.png"
    }
  ]
}

❌Fail❌

400 Bad Request

{
	"code": "error",
	"message": "인자의 형식이 올바르지 않습니다."
}

404 Not Found

{
	"code": "error",
	"message": "존재하지 않는 api 입니다."
}

500 Internal Server Error

{
	"code": "error",
	"message": "서버 내부 오류입니다. 잠시 후 다시 시도해주세요."
}

편의점 섹션 조회

Description

특정 섹션에 해당하는 편의점 목록을 조회합니다.


Request Header

name type description
     

⭕ Success ⭕

200 OK

{
  "result": "Success",
  "stores": [
    {
      "id": "1",
      "name": "CU",
      "icon_url": "cu.png"
    },
    {
      "id": "2",
      "name": "GS25",
      "icon_url": "gs25.png"
    },
    {
      "id": "3",
      "name": "세븐일레븐",
      "icon_url": "seven_eleven.png"
    },
    {
      "id": "4",
      "name": "이마트24",
      "icon_url": "emart24.png"
    }
  ]
}

❌ Fail ❌

400 Bad Request

{
  "code": "BAD_REQUEST",
  "message": "인자의 형식이 올바르지 않습니다."
}

404 Not Found

{
  "code": "NOT_FOUND",
  "message": "존재하지 않는 API입니다."
}

500 Internal Server Error

{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "서버 내부 오류입니다. 잠시 후 다시 시도해주세요."
}

특정 섹션 상점 목록 조회

Description

특정 카테고리 섹션에 해당하는 가게 목록과 각 가게의 상세 정보를 조회합니다. 정렬 옵션을 통해 결과를 원하는 순서로 반환합니다.


Request Header

name type description
user_id Long 사용자 식별 ID
membership_status Boolean 배민클럽 가입 여부

⭕ Success ⭕

200 OK

{
  "result": "Success",
  "stores": [
    {
      "storeId": "1",
      "storeName": "온정김밥 야당본점",
      "rating": 4.7,
      "deliveryTime": "18-33분",
      "deliveryFee": 0,
      "minOrderPrice": 15000,
      "membershipStatus": true,
      "menus": [
        {
          "menuId": "101",
          "menuName": "운정김밥",
          "menuPrice": 4000,
          "menuImageUrl": "gimbap.jpg"
        }
        // 추가 메뉴
      ]
    },
    {
      "storeId": "2",
      "storeName": "친봉통닭 탄현마을점",
      "rating": 5.0,
      "deliveryTime": "27-42분",
      "deliveryFee": 1700,
      "minOrderPrice": 5000,
      "membershipStatus": false,
      "menus": [
        {
          "menuId": "201",
          "menuName": "(Chilbong)한마리 반반 치킨",
          "menuPrice": 22900,
          "menuImageUrl": "half_chicken.jpg"
        }
        // 추가 메뉴
      ]
    }
  ]
}

❌ Fail ❌

존재하지 않는 사용자입니다.

400 Bad Request

{
  "code": "BAD_REQUEST",
  "message": "인자의 형식이 올바르지 않습니다."
}

404Not Found (존재하지 않는 사용자)

{
  "code": "USER_NOT_FOUND",
  "message": "존재하지 않는 사용자입니다."
}

500 Internal Server Error

{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "서버 내부 오류입니다. 잠시 후 다시 시도해주세요."
}

🔖ERD

erd

  • user
    • 사용자의 배민클럽 회원 여부에 따라 store의 배달팁이 달라집니다.
  • category
    • 여러 가게가 하나의 카테고리에 속합니다.
  • store
    • 가게 정보와 메뉴 및 리뷰를 포함합니다.
    • 하나의 가게는 여러 메뉴를 가질 수 있으므로, store_id 외래키를 통해 연결됩니다.
  • review
    • 각 가게에 대한 리뷰 정보를 저장합니다.
  • menu
    • 각 가게에 제공하는 메쥬의 정보를 저장합니다.
  • convenience
    • 독립적으로 있으며, 각 편의점 목록을 저장합니다.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant