Skip to content

API ๋ช…์„ธ

On Yoo edited this page Apr 8, 2024 · 1 revision

Dango APIs

ingredient - ์›์žฌ๋ฃŒ ๊ด€๋ จ API

GET - /api/ingredient/search?pageable={pageable}

  • ๋ชจ๋“  ์›์žฌ๋ฃŒ์˜ ์ •๋ณด๋ฅผ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • pageable์„ ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์œผ๋กœ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  • pageable
{
  "page": 0,
  "size": 1,
  "sort": [
    "string"
  ]
}

GET - /api/ingredient/search/type/{keyword}?pageable={pagealbe}

  • ํƒ€์ž…(์›์žฌ๋ฃŒ์˜ ์นดํ…Œ๊ณ ๋ฆฌ) ๊ธฐ์ค€์œผ๋กœ ์›์žฌ๋ฃŒ์˜ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • keyword๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ๋ชจ๋‘ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • path variables
    • keyword : ๊ฒ€์ƒ‰ํ•  ์›์žฌ๋ฃŒ์˜ ํƒ€์ž…(์นดํ…Œ๊ณ ๋ฆฌ)

GET - /api/ingredient/search/name/{keyword}?pageable={pagealbe}

  • ์ด๋ฆ„ ๊ธฐ์ค€์œผ๋กœ ์›์žฌ๋ฃŒ์˜ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • keyword๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ๋ชจ๋‘ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • path variables
    • keyword : ๊ฒ€์ƒ‰ํ•  ์›์žฌ๋ฃŒ์˜ ์ด๋ฆ„

log - ๋ƒ‰์žฅ๊ณ  ์•ˆ ๋ฌผํ’ˆ ๊ด€๋ จ API

GET - /api/log/{id}

  • ๋ƒ‰์žฅ๊ณ  ์•ˆ ๊ฐœ๋ณ„ ๋ฌผํ’ˆ์˜ ์ƒ์„ธ ์ •๋ณด๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.
  • id๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ƒ์„ธ ์‚ฌํ•ญ(๋ฌผํ’ˆ์ •๋ณด + ๋ฌผํ’ˆ์ด ์†ํ•œ ์›์žฌ๋ฃŒ์˜ ์ •๋ณด)์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • path variables
    • id : ์กฐํšŒํ•  ๋ฌผํ’ˆ์˜ id

POST - /api/log

  • ๋ƒ‰์žฅ๊ณ  ์•ˆ ๊ฐœ๋ณ„ ๋ฌผํ’ˆ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • registerDTO์— ๋งž๊ฒŒ ์š”์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
{
  "refrigeratorId": 0,
  "name": "string",
  "category": "string",
  "type": 0
}

PUT - /api/log

  • ๋ƒ‰์žฅ๊ณ  ์•ˆ ๊ฐœ๋ณ„ ๋ฌผํ’ˆ์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.
  • editDTO์— ๋งž๊ฒŒ ์š”์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋„์ฐฉํ•œ ๊ฐ’์— ๋Œ€ํ•ด์„œ๋งŒ ์—…๋ฐ์ดํŠธํ•˜๊ณ , ๋‚˜๋จธ์ง€ ์ปฌ๋Ÿผ์€ ์ˆ˜์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
{
  "id": 0,
  "name": "string",
  "category": "string",
  "expirationTime": "2024-04-07T14:41:54.160Z",
  "inputTime": "2024-04-07T14:41:54.160Z",
  "outputTime": "2024-04-07T14:41:54.160Z",
  "type": 0,
  "exist": true
}

DELETE - /api/log/{id}

  • ๋ƒ‰์žฅ๊ณ  ์•ˆ ๊ฐœ๋ณ„ ๋ฌผํ’ˆ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  • id ๊ธฐ์ค€์œผ๋กœ ๋ฌผํ’ˆ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  • path variables
    • id : ์‚ญ์ œํ•  ๋ฌผํ’ˆ์˜ id

refrigerator - ๋ƒ‰์žฅ๊ณ  ๊ด€๋ จ API

GET - /api/refrigerator

  • ๋‚ด ๋ƒ‰์žฅ๊ณ ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.
  • ํ† ํฐ์„ ๊ธฐ์ค€์œผ๋กœ ์œ ์ €๋ฅผ ์กฐํšŒํ•˜๊ณ , ์œ ์ €์—๊ฒŒ ์†ํ•œ '๋ƒ‰์žฅ๊ณ '๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.

GET - /api/refrigerator/{refrigeratorNickname}

  • ๋ƒ‰์žฅ๊ณ  ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ํ’ˆ๋ชฉ์„ ๋ฆฌ์ŠคํŠธ๋กœ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค
  • ๋ƒ‰์žฅ๊ณ  ์•ˆ ๋ฌผํ’ˆ ์ค‘ '๋ƒ‰์žฅ๊ณ (๋‹‰๋„ค์ž„)'์— ์†ํ•œ ๋ชจ๋“  ๋ฌผํ’ˆ์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.
  • ํ† ํฐ์œผ๋กœ ์กฐํšŒํ•œ ์œ ์ €์—๊ฒŒ ์†ํ•œ ๋ƒ‰์žฅ๊ณ ๋งŒ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • path variables
    • refrigeratorNickname : ์กฐํšŒํ•  ๋ƒ‰์žฅ๊ณ ์˜ ๋ณ„๋ช…

GET - /api/refrigerator/{refrigeratorNickname}/door

  • ๋ƒ‰์žฅ๊ณ ๊ฐ€ ์—ด๋ ค์žˆ๋Š”์ง€ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.
  • path variables
    • refrigeratorNickname : ์กฐํšŒํ•  ๋ƒ‰์žฅ๊ณ ์˜ ๋ณ„๋ช…

GET - /api/refrigerator/old/{refrigeratorNickname}?t={t}

  • ๋ƒ‰์žฅ๊ณ  ์•ˆ์˜ ํ’ˆ๋ชฉ ์ค‘ ์˜ค๋ž˜๋œ ๊ฒƒ๋“ค์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.
  • ์กฐํšŒ ๊ธฐ์ค€ ๋‚ ์งœ t๋ฅผ ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์œผ๋กœ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ „๋‹ฌ๋˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ 10์ผ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • path variables
    • refrigeratorNickname : ์กฐํšŒํ•  ๋ƒ‰์žฅ๊ณ ์˜ ๋ณ„๋ช…

POST - /api/refrigerator

  • ๋‚ด ๋ƒ‰์žฅ๊ณ ๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.
  • ํ† ํฐ์œผ๋กœ ์œ ์ €๋ฅผ ์กฐํšŒํ•˜๊ณ , ๊ทธ ์œ ์ €์—๊ฒŒ ๋ƒ‰์žฅ๊ณ ๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.
  • request body -> text/plain
String

PUT - /api/refrigerator

  • ๋‚ด ๋ƒ‰์žฅ๊ณ ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ํ† ํฐ์œผ๋กœ ์œ ์ €๋ฅผ ์กฐํšŒํ•˜๊ณ , ๊ทธ ์œ ์ €์—๊ฒŒ ์†ํ•œ ๋ƒ‰์žฅ๊ณ ๊ฐ€ ์žˆ์œผ๋ฉด ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.
  • request body๋กœ ์ „์ž˜ ๋œ ๋ƒ‰์žฅ๊ณ ๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋ƒ‰์žฅ๊ณ ์ธ ๊ฒฝ์šฐ ๊ทธ ๋ƒ‰์žฅ๊ณ ๋กœ ์ˆ˜์ •๋˜๋ฉฐ, ์—†๋Š” ๋ƒ‰์žฅ๊ณ ์ธ ๊ฒฝ์šฐ ๋ƒ‰์žฅ๊ณ ๊ฐ€ DB์— ์ƒˆ๋กœ ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค.
  • request body -> text/plain
String

GET - /api/user/profile

์œ ์ €์กฐํšŒ
  • ์œ ์ € ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.
  • ํ† ํฐ์œผ๋กœ ์œ ์ € ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค
  • ํ† ํฐ์„ ์ œ์ถœํ•˜์ง€ ์•Š์œผ๋ฉด 403 ์—๋Ÿฌ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • request header -> Authorization (AccessToken)

POST - /api/users/login

๋กœ๊ทธ์ธ
  • ๋กœ๊ทธ์ธ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค
  • ์œ ์ €๋„ค์ž„์€ ์ด๋ฉ”์ผ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ ธ์•ผํ•ฉ๋‹ˆ๋‹ค.
  • ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ์ตœ์†Œ 8์ž, ์ตœ์†Œ ํ•˜๋‚˜์˜ ๋ฌธ์ž ๋ฐ ํ•˜๋‚˜์˜ ์ˆซ์ž๋ฅผ ํฌํ•จํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
request body -> application/json
{
  "username": "string",
  "password": "string"
}
reseponse body -> application/json
{
  "status": 0,
  "message": "string",
  "data": {
    "nickname": "string",
    "email": "string",
    "refrigeratorNickname": "string",
    "accessToken": "string",
    "refreshToken": "string"
  }
}

GET - /api/users/logout

๋กœ๊ทธ์•„์›ƒ
  • ๋‘๊ฐœ์˜ ํ† ํฐ์„ ํ—ค๋”๋กœ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์„œ๋น„์Šค๋กœ์ง์—์„œ ํ† ํฐ์„ ๊ฒ€์ฆํ•˜๊ณ  ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ์„ค์ •์„ ํ•˜์—ฌ ๋กœ๊ทธ์•„์›ƒ ์ฒ˜๋ฆฌ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค
Request Header

++ Authorization (String) ++ Refresh-Token (String)

Response Body -> application/json
{
  "status": 0,
  "message": "string",
  "data": "string"
}

GET - /api/users/check

์ค‘๋ณต๊ฒ€์‚ฌ
  • ์ด๋ฉ”์ผ๊ณผ ๋‹‰๋„ค์ž„์„ ์ž…๋ ฅ๋ฐ›์•„ ์ค‘๋ณต๊ฒ€์‚ฌ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค
  • ๋‘๊ฐ€์ง€ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ชจ๋‘ ์ž…๋ ฅํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค
Request Required
  • email (String)
  • nickname (String)
Response Body -> application/json
{
  "status": 0,
  "message": "string",
  "data": "string"
}

GET - /api/users/register/profile

ํšŒ์›๊ฐ€์ž…
  • ์ด๋ฉ”์ผ / ๋น„๋ฐ€๋ฒˆํ˜ธ / ๋‹‰๋„ค์ž„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • ์ด๋ฉ”์ผ ์ค‘๋ณต๊ฒ€์‚ฌ๋ฅผ ์„œ๋น„์Šค ๋กœ์ง์—์„œ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹‰๋„ค์ž„ ์ค‘๋ณต๊ฒ€์‚ฌ๋ฅผ ์„œ๋น„์Šค ๋กœ์ง์—์„œ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
Request Required
  • username (String)
  • password (String)
  • nickname (String)
Response Body -> application/json
{
  "status": 0,
  "message": "string",
  "data": "string"
}

Clone this wiki locally