API_Product - Laterality/yummy-dishes-REST GitHub Wiki


Index


μ œν’ˆ 등둝


μ œν’ˆ 정보λ₯Ό λ“±λ‘ν•˜λŠ” APIμž…λ‹ˆλ‹€.

  • URL

    /product/register

  • Method:

    POST

  • URL Params

    none

  • Data Params

    Body

    name
    string
    μ œν’ˆλͺ…
    price
    integer
    μ œν’ˆ 가격
    amount
    string
    μ œν’ˆ λΆ„λŸ‰
    ingredient
    string
    μ œν’ˆ 재료
    contents
    Array<string>
    λ³Έλ¬Έ λ‚΄μš©
    category
    string
    μΉ΄ν…Œκ³ λ¦¬μ˜ "_id" ν•„λ“œ
    image_ids
    Array<string>
    μ—…λ‘œλ“œλœ μ΄λ―Έμ§€μ˜ "_id" ν•„λ“œκ°’ λ°°μ—΄
  • Success Response:

    • Code: 201
      Content:

      { 
      	"result": "ok",
      	"product": {
      		...
      	}
      }
      
      result
      string
      μš”μ²­μ— λŒ€ν•œ 처리 κ²°κ³Ό["ok", "fail", "error"]
      message
      string
      처리 결과에 λŒ€ν•œ μΆ”κ°€ λ©”μ‹œμ§€
      product
      ProductModel
      μš”μ²­μ΄ μ„±κ³΅ν•œ 경우 μƒμ„±λœ μ œν’ˆ 정보
  • Error Response:

    • Code: 405 INVALID PARAMETERS
      Content:
      {
      	"result": "fail",
      	"message": "invalid parameters"
      }
      

    OR

    • Code: 500 SERVER FAULT
      Content:
      {
      	"result": "error",
      	"message": "server fault"
      }
      
  • Sample Call:

    {
      "name": "Product1",
      "price": 3000,
      "amount": "2인뢄 (600g)",
      "ingredient": "ing1, ing2, ...",
      "contents": [
      	"content1...",
      	"content2...",
      	...
      ]
      "category": "5993cce589d47e657b885ba3",
      "image_ids": [
      	"5993cce589d47e657b885ba3",
      	...
      ]
    }
    
  • Notes:

    • APIμƒμœΌλ‘œλŠ” 이미지 파일 μ—…λ‘œλ“œ κ°œμˆ˜μ— μ œν•œμ΄ μ—†μŠ΅λ‹ˆλ‹€. ν•„μš”ν•œ 경우 ν”„λ‘ νŠΈμ—”λ“œμ—μ„œ μ œμ–΄ν•΄μ£Όμ„Έμš”.

μ œν’ˆ 쑰회


μ œν’ˆ 정보λ₯Ό μ‘°νšŒν•˜λŠ” APIμž…λ‹ˆλ‹€.

  • URL

    /product/{productId}

  • Method:

    GET

  • URL Params

    Reqired:

    productId
    string
    μ œν’ˆ "_id" ν•„λ“œ κ°’
    q
    string
    μš”μ²­ν•˜λŠ” 정보 (,둜 ꡬ뢄)
    ["amount", "ingredient", "contents", "category", "date_reg", "cnt_like", "avg_rate", "images"]
  • Data Params

    None

  • Success Response:

    • Code: 200
      Content:

      { 
      	"result": "ok",
      	"product": {
      		...
      	}
      }
      
      result
      string
      μš”μ²­μ— λŒ€ν•œ 처리 κ²°κ³Ό["ok", "fail", "error"]
      message
      string
      처리 결과에 λŒ€ν•œ μΆ”κ°€ λ©”μ‹œμ§€
      product
      ProductModel
      μš”μ²­μ΄ μ„±κ³΅ν•œ 경우 μ œν’ˆ 정보
  • Error Response:

    • Code: 404 NOT FOUND
      Content:
      {
      	"result": "fail",
      	"message": "not found"
      }
      

    OR

    • Code: 500 SERVER FAULT
      Content:
      {
      	"result": "error",
      	"message": "server fault"
      }
      
  • Sample Call:

    # _idν•„λ“œκ°’μ΄ 599297a54a03b51a11aa3d27인 μ œν’ˆμ˜ 평균 평점과 이미지λ₯Ό λ°˜ν™˜
    GET /product/599297a54a03b51a11aa3d27?q=cnt_like,avg_rate,image
    
  • Notes:


μ œν’ˆ κ°±μ‹ 


μ œν’ˆ 정보λ₯Ό κ°±μ‹ ν•˜λŠ” APIμž…λ‹ˆλ‹€.

  • URL

    /product/{productId}/update

  • Method:

    PUT

  • URL Params

    Reqired:

    productId
    string
    μ œν’ˆ "_id" ν•„λ“œ κ°’
  • Data Params

    name
    string
    μ œν’ˆλͺ…
    price
    integer
    μ œν’ˆ 가격
    amount
    string
    μ œν’ˆ λΆ„λŸ‰
    ingredient
    string
    μ œν’ˆ 재료
    contents
    Array<string>
    μ œν’ˆ μ„€λͺ… λ³Έλ¬Έ
    category
    string
    μΉ΄ν…Œκ³ λ¦¬μ˜ "_id"ν•„λ“œκ°’
    images
    Array<string>
    이미지 "_id"ν•„λ“œκ°’ λ°°μ—΄
  • Success Response:

    • Code: 200
      Content:

      { 
      	"result": "ok"
      }
      
      result
      string
      μš”μ²­μ— λŒ€ν•œ 처리 κ²°κ³Ό["ok", "fail", "error"]
      message
      string
      처리 결과에 λŒ€ν•œ μΆ”κ°€ λ©”μ‹œμ§€
  • Error Response:

    • Code: 404 NOT FOUND
      Content:
      {
      	"result": "fail",
      	"message": "not found"
      }
      

    OR

    • Code: 405 INVALID PARAMETERS Content:
      {
      	"result": "fail",
      	"message": "invalid parameter: productId"
      }
      

    OR

    • Code: 500 SERVER FAULT
      Content:
      {
      	"result": "error",
      	"message": "server fault"
      }
      
  • Sample Call:

    {
        "name": "changedProdName2",
        "price": 4500
    }
    
  • Notes:

    • μž…λ ₯κ°’ μœ νš¨μ„± 검사 ν•΄μ£Όμ„Έμš”, κΌ­!
    • Request Bodyμ—λŠ” λ³€κ²½ν•  ν•­λͺ©λ§Œ 있으면 λ©λ‹ˆλ‹€. 변경사항 μ—†λŠ” ν•­λͺ©μ€ 빈 λ¬Έμžμ—΄ ν˜Ήμ€ 숫자 νƒ€μž…μΈ 경우 0 미만의 값을 λ„£μ–΄μ£Όμ„Έμš”

μ œν’ˆ 제거


μ œν’ˆ 정보λ₯Ό μ œκ±°ν•˜λŠ” APIμž…λ‹ˆλ‹€.

  • URL

    /product/{productId}/delete

  • Method:

    DELETE

  • URL Params

    Reqired:

    productId
    string
    μ œν’ˆ "_id" ν•„λ“œ κ°’
  • Data Params

    None

  • Success Response:

    • Code: 200
      Content:

      { 
      	"result": "ok"
      }
      
      result
      string
      μš”μ²­μ— λŒ€ν•œ 처리 κ²°κ³Ό["ok", "fail", "error"]
      message
      string
      처리 결과에 λŒ€ν•œ μΆ”κ°€ λ©”μ‹œμ§€
  • Error Response:

    • Code: 404 NOT FOUND
      Content:

      {
      	"result": "fail",
      	"message": "not found"
      }
      
    • Code: 500 SERVER FAULT
      Content:

      {
      	"result": "error",
      	"message": "server fault"
      }
      
  • Sample Call:

    DELETE /product/599297a54a03b51a11aa3d27/delete
    
  • Notes:


μ œν’ˆ 검색


μ œν’ˆλͺ…κ³Ό μž¬λ£Œμ— λŒ€ν•΄ νŠΉμ • ν‚€μ›Œλ“œλ‘œ κ²€μƒ‰ν•˜λŠ” APIμž…λ‹ˆλ‹€.

  • URL

    /product/search

  • Method:

    GET

  • URL Params

    Optional:

    keyword
    string
    검색할 ν‚€μ›Œλ“œ
    sort
    string
    μ •λ ¬ κΈ°μ€€, ["name", "cnt_like", "avg_rate"] (기본값은 name)
    category
    string
    검색할 μΉ΄ν…Œκ³ λ¦¬μ˜ "_id"ν•„λ“œ κ°’
    q
    string
    μš”μ²­ν•˜λŠ” 정보 (,둜 ꡬ뢄)
    ["amount", "ingredient", "contents", "category", "date_reg", "cnt_like", "avg_rate", "images"]
  • Data Params

    None

  • Success Response:

    • Code: 200
      Content:

      { 
      	"result": "ok",
      	"products": [
      		{
      			...
      		},
      		...
      	]
      }
      
      result
      string
      μš”μ²­μ— λŒ€ν•œ 처리 κ²°κ³Ό["ok", "fail", "error"]
      message
      string
      처리 결과에 λŒ€ν•œ μΆ”κ°€ λ©”μ‹œμ§€
      products
      Array<ProductModel>
      μš”μ²­μ΄ μ„±κ³΅ν•œ 경우 μ œν’ˆ 정보 λ°°μ—΄
  • Error Response:

    • Code: 500 SERVER FAULT
      Content:
      {
      	"result": "error",
      	"message": "server fault"
      }
      
  • Sample Call:

    GET /product/search?keyword=λ‚˜λ¬Ό&q=cnt_like,avg_rate,image
    
  • Notes:


리뷰 쑰회


ν•΄λ‹Ή μ œν’ˆμ— λŒ€ν•΄ μž‘μ„±λœ 리뷰 리슀트λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

  • URL

    /product/{productId}/comments

  • Method:

    GET

  • URL Params

    Required:

    productId
    string
    μ œν’ˆμ˜ "_id" ν•„λ“œκ°’

    Optional:

    q
    string
    λ°˜ν™˜λ°›μ„ ν•„λ“œ
    ["author", "product", "date_reg", "rate", "tastes", "content", "reply"]
  • Data Params

    None

  • Success Response:

    • Code: 200
      Content:

      { 
      	"result": "ok",
      	"comments": [
      		{
      			...
      		},
      		{
      			...
      		},
      		...
      	]
      }
      
      result
      string
      μš”μ²­μ— λŒ€ν•œ 처리 κ²°κ³Ό["ok", "fail", "error"]
      message
      string
      처리 결과에 λŒ€ν•œ μΆ”κ°€ λ©”μ‹œμ§€
      product
      CommentModel
      μš”μ²­μ΄ μ„±κ³΅ν•œ 경우 μ œν’ˆμ˜ 리뷰 λ°°μ—΄
  • Error Response:

    • Code: 404 NOT FOUND
      Content:
      {
      	"result": "fail",
      	"message": "not found"
      }
      

    OR

    • Code: 500 SERVER FAULT
      Content:
      {
      	"result": "error",
      	"message": "server fault"
      }
      
  • Sample Call:

    # _idν•„λ“œκ°’μ΄ 599297a54a03b51a11aa3d27인 μ œν’ˆμ˜ λ¦¬λ·°μ—μ„œ μž‘μ„±μžμ™€ 평점을 λ°˜ν™˜
    GET /product/599297a54a03b51a11aa3d27?q=author,rate
    
  • Notes:

    None

⚠️ **GitHub.com Fallback** ⚠️