API_User - Laterality/yummy-dishes-REST GitHub Wiki
Index
- ์ฌ์ฉ์ ์์ฑ
- ์ฌ์ฉ์ ๋ก๊ทธ์ธ
- ์ฌ์ฉ์ ์กฐํ
- ์ฌ์ฉ์ ๊ฐฑ์
- ์ฌ์ฉ์ ์ ๊ฑฐ
- ์ค๋ณต ํ์ธ
- ๋ฆฌ๋ทฐ ์กฐํ
- ์ฟ ํฐ ์กฐํ
- ์ฅ๋ฐ๊ตฌ๋ ์ถ๊ฐ
- ์๋ ๋ณ๊ฒฝ
- ์ฅ๋ฐ๊ตฌ๋์ ์ ํ ์ ๊ฑฐ
์ฌ์ฉ์๋ฅผ ์์ฑํ๋ API์ ๋๋ค.
-
URL
/user/register
-
Method:
POST
-
URL Params
none
-
Data Params
Body
- string
- ์ฌ์ฉ์ ์ด๋ฉ์ผ (์ ํจ์ฑ ๊ฒ์ฌ ํ์)
- password
- string
- ์ํธํ๋์ง ์์(raw) ์ฌ์ฉ์ ํจ์ค์๋ (์ ํจ์ฑ ๊ฒ์ฌ ํ์)
- username
- string
- ์ฌ์ฉ์ ์ ์ ๋ค์(์ ํจ์ฑ ๊ฒ์ฌ ํ์)
- login_type
- string
- ๋ก๊ทธ์ธ ํํ ["native", "google"]
- access_token
- string
- ์ธ๋ถ ํ๋ซํผ์ ์ํ ๊ฐ์ ์ธ ๊ฒฝ์ฐ, ์ก์ธ์ค ํ ํฐ
- phone_number
- string
- ์ฌ์ฉ์ ํด๋ํฐ ๋ฒํธ (ํ์ดํ('-') ์ ์ธ, ์ ํจ์ฑ ๊ฒ์ฌ ํ์)
- age
- integer
- ์ฌ์ฉ์ ์ฐ๋ น๋
- device_id
- string
- ํธ์์๋ฆผ์ ์ํ device registration id
-
Success Response:
-
Code: 201
Content:{ "result": "ok", "user": UserModel }
- result
- string
- ์์ฒญ์ ๋ํ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ["ok", "fail", "error"]
- message
- string
- ์ฒ๋ฆฌ ๊ฒฐ๊ณผ์ ๋ํ ์ถ๊ฐ ๋ฉ์์ง
- user
- UserModel
- ์์ฒญ์ด ์ฑ๊ณตํ ๊ฒฝ์ฐ ์์ฑ๋ ์ฌ์ฉ์์ ๋ํ ์ ๋ณด
-
-
Error Response:
-
Code: 405 INVALID PARAMETERS
Content:{ "result": "fail", "message": "invalid parameters" }
OR
-
Code: 409 DUPLICATES
Content:{ "result": "fail", "message": "email or username duplicates" }
OR
-
Code: 500 SERVER FAULT
Content:{ "result": "error", "message": "server fault" }
-
Code: 405 INVALID PARAMETERS
-
Sample Call:
{ "email": "[email protected]", "username": "JohnSmith", "password": "p@ssW0rd", "login_type": "native", "phone_number": "01012345678", "age": 20, "device_id": "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..." }
-
Notes:
- ๊ตฌ๊ธ ๋ฑ ํ ํ๋ซํผ ๊ณ์ ์ ์ด์ฉํ๋ ๊ฒฝ์ฐ ๋ณธ API ํธ์ถ ์ ์ login API๋ฅผ ๋จผ์ ํธ์ถํด์ ๊ฒ์ ์์ฑ ๊ฐ๋ฅ ์ฌ๋ถ๋ฅผ ํ์ธํด์ผ ํฉ๋๋ค.
-
email
,password
,username
๋ฑ์ ๋ํด API ํธ์ถ ์ ์ ๋ฐ๋์ ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ์ด๋ฃจ์ด์ ธ์ผ ํฉ๋๋ค. - ํธ์์๋ฆผ๊ณผ ๊ฐ์ธ์ ๋ณด ์ด์ฉ ๋์๋ ์์ฑ์ ๊ธฐ๋ณธ๊ฐ์ '๋์ํจ'์ผ๋ก ์์ฑํ๋ฏ๋ก, ํ์ํ ๊ฒฝ์ฐ ๊ฐฑ์ API๋ฅผ ํธ์ถํด์ผ ํฉ๋๋ค.
์ฌ์ฉ์ ๋ก๊ทธ์ธ API์ ๋๋ค.
-
URL
/user/login
-
Method:
POST
-
URL Params
none
-
Data Params
Body
- string
- ์ฌ์ฉ์ ์ด๋ฉ์ผ (์ ํจ์ฑ ๊ฒ์ฌ ํ์)
- password
- string
- ์ํธํ๋์ง ์์(raw) ์ฌ์ฉ์ ํจ์ค์๋ (์ ํจ์ฑ ๊ฒ์ฌ ํ์)
- login_type
- string
- ๋ก๊ทธ์ธ ํํ ["native", "google"]
-
Success Response:
-
Code: 200
Content:{ "result": "ok", "message": "redirect to sign up" }
- result
- string
- ์์ฒญ์ ๋ํ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ["ok", "fail", "error"]
- message
- string
- ์ฒ๋ฆฌ ๊ฒฐ๊ณผ์ ๋ํ ์ถ๊ฐ ๋ฉ์์ง
- user
- UserModel
- ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ ๊ฒฝ์ฐ ์ฌ์ฉ์ ์ ๋ณด
OR
-
Code: 201
Content:{ "result": "ok", "user": { ... } }
-
-
Error Response:
-
Code: 404 NOT FOUND
Content:{ result: "fail", message: "email or password incorrect" }
OR
-
Code: 405 INVALID PARAMETERS
Content:{ "result": "fail", "message": "invalid parameters" }
OR
-
Code: 500 SERVER FAULT
Content:{ result: "error", message: "server fault" }
-
Code: 404 NOT FOUND
-
Sample Call:
{ "email": "[email protected]", "password": "p@ssW0rd", "login_type": "native", }
-
Notes:
- ์ธ๋ถ๊ณ์ ํ์์ ๊ฒฝ์ฐ ํ์๊ฐ์ ์ ์ ๋ณธ API๋ฅผ ํธ์ถํด์ ํ์๊ฐ์ ์ฌ๋ถ๋ฅผ ํ์ธํด์ฃผ์ธ์.
-
login_type
์ดnative
๊ฐ ์๋ ๊ฒฝ์ฐ status code๊ฐ 200์ด๋ฉด ์ธ๋ถ๊ณ์ ์ฌ์ฉ์์ ํ์๊ฐ์ ์ด ํ์ํ ๊ฒฝ์ฐ์ด๋ฏ๋ก ํด๋ผ์ด์ธํธ์์ ์ด๋ฅผ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. -
email
,password
๋ฑ์ ๋ํด API ํธ์ถ ์ ์ ๋ฐ๋์ ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ์ด๋ฃจ์ด์ ธ์ผ ํฉ๋๋ค. - ํธ์์๋ฆผ๊ณผ ๊ฐ์ธ์ ๋ณด ์ด์ฉ ๋์๋ ์์ฑ์ ๊ธฐ๋ณธ๊ฐ์ '๋์ํจ'์ผ๋ก ์์ฑํ๋ฏ๋ก, ํ์ํ ๊ฒฝ์ฐ ๊ฐฑ์ API๋ฅผ ํธ์ถํด์ผ ํฉ๋๋ค.
์ฌ์ฉ์ ์ ๋ณด ์กฐํ API์ ๋๋ค.
-
URL
/user/{userId}
-
Method:
GET
-
URL Params
Required:
- userId
- string
- ์ฌ์ฉ์์ "_id" ํ๋ ๊ฐ
Optional:
- q
- string
- ์์ฒญํ๋ ์ฌ์ฉ์ ์ ๋ณด(,๋ก ๋ถ๋ฆฌ)
- ["login_type", "phone_number", "date_reg", "age", "accept_push", "accept_privacy", "bucket", "tastes", "likes", "comments", "coupons", "cnt_reviewable", "cnt_stamp", "classes_prefer"]
-
Data Params
None
-
Success Response:
-
Code: 200
Content:{ "result": "ok", "User": { ... } }
- result
- string
- ์์ฒญ์ ๋ํ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ["ok", "fail", "error"]
- message
- string
- ์ฒ๋ฆฌ ๊ฒฐ๊ณผ์ ๋ํ ์ถ๊ฐ ๋ฉ์์ง
- user
- UserModel
- ์์ฒญ์ ์ฑ๊ณตํ ๊ฒฝ์ฐ ์ฌ์ฉ์ ์ ๋ณด
-
-
Error Response:
-
Code: 404 NOT FOUND
Content:{ result: "fail", message: "not found" }
OR
-
Code: 500 SERVER FAULT
Content:{ result: "error", message: "server fault" }
-
Code: 404 NOT FOUND
-
Sample Call:
Path: GET /user/599297a54a03b51a11aa3d27?q=likes,comments,coupons
-
Notes:
- ์ฟผ๋ฆฌ๋ฌธ์์ด์ ๋์๋ฌธ์ ๊ตฌ๋ถํฉ๋๋ค. ์๋ฌธ์๋ก๋ง ์ ๋ ฅํด์ฃผ์ธ์.
- ์ฟผ๋ฆฌ๋ฌธ์์ด์ ๊ณต๋ฐฑ ๋ค์ด๊ฐ์ง ์์์ ์ ์ํ์ธ์.
์ฌ์ฉ์ ์ ๋ณด ๊ฐฑ์ API์ ๋๋ค.
-
URL
/user/{userId}/update
-
Method:
PUT
-
URL Params
Required:
- userId
- string
- ์ฌ์ฉ์์ "_id" ํ๋ ๊ฐ
-
Data Params
- string
- ์๋ก์ด ์ด๋ฉ์ผ
- username
- string
- ์๋ก์ด ์ฌ์ฉ์๋ช
- device_id
- string
- ์๋ก์ด device registration id
- tastes
- Array<string>
- ์ฌ์ฉ์ ์ ๋ง
- cnt_stamp
- integer
- ์๋ก์ด ์คํฌํ ๊ฐ์
-
Success Response:
-
Code: 200
Content:{ "result": "ok", }
- result
- string
- ์์ฒญ์ ๋ํ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ["ok", "fail", "error"]
- message
- string
- ์ฒ๋ฆฌ ๊ฒฐ๊ณผ์ ๋ํ ์ถ๊ฐ ๋ฉ์์ง
-
-
Error Response:
-
Code: 404 NOT FOUND
Content:{ result: "fail", message: "user not found" }
OR
-
Code: 409 USERNAME DUPLICATES
Content:{ result: "fail", message: "username duplicates", }
OR
-
Code: 500 SERVER FAULT
Content:{ result: "error", message: "server fault" }
-
Code: 404 NOT FOUND
-
Sample Call:
Path: PUT /user/599297a54a03b51a11aa3d27 { "cnt_stamp": 2, }
-
Notes:
- Request Body์ ๊ฐ ๊ฐ์ ๋ณ๊ฒฝํ๋ ๊ฐ๋ง ์ ํํ์ฌ ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค.
์ฌ์ฉ์๋ฅผ ์ ๊ฑฐํ๋ API์ ๋๋ค.
-
URL
/user/{userId}/delete
-
Method:
GET
-
URL Params
Required:
- userId
- 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", }
OR
-
Code: 500 SERVER FAULT
Content:{ result: "error", message: "server fault" }
-
Code: 404 NOT FOUND
-
Sample Call:
Path: GET /user/is/duplicates?where=username&value=Lauren
-
Notes:
- ์ฟผ๋ฆฌ๋ฌธ์์ด ๋ ๋ค ํ์์ฌํญ์ ๋๋ค.
์ด๋ฉ์ผ๊ณผ ์ ์ ๋ค์ ์ค๋ณต์ฌ๋ถ๋ฅผ ํ์ธํ๋ API์ ๋๋ค.
-
URL
/user/is/duplicates
-
Method:
GET
-
URL Params
Required:
- where
- string
- ์ค๋ณต์ฌ๋ถ๋ฅผ ํ์ธํ ํ๋๋ช
- ["email", "username"]
- value
- string
- ๋์กฐํ ๊ฐ
-
Data Params
None
-
Success Response:
-
Code: 200
Content:{ "result": "ok", "message": "duplicates" }
- result
- string
- ์์ฒญ์ ๋ํ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ["ok", "fail", "error"]
- message
- string
- ์ฒ๋ฆฌ ๊ฒฐ๊ณผ์ ๋ํ ์ถ๊ฐ ๋ฉ์์ง, ์์ฒญ์ด ์ฑ๊ณตํ ๊ฒฝ์ฐ ์ค๋ณต ์ฌ๋ถ["duplicates", "not duplicates""]
-
-
Error Response:
-
Code: 405 INVALID PARAMETERS
Content:{ result: "fail", message: "invalid parameters", }
OR
-
Code: 500 SERVER FAULT
Content:{ result: "error", message: "server fault" }
-
Code: 405 INVALID PARAMETERS
-
Sample Call:
Path: GET /user/is/duplicates?where=username&value=Lauren
-
Notes:
- ์ฟผ๋ฆฌ๋ฌธ์์ด ๋ ๋ค ํ์์ฌํญ์ ๋๋ค.
์ฌ์ฉ์๊ฐ ์์ฑํ ๋ฆฌ๋ทฐ ๋ฆฌ์คํธ๋ฅผ ๋ฐํํฉ๋๋ค.
-
URL
/user/{userId}/comments
-
Method:
GET
-
URL Params
Required:
- userId
- ์ฌ์ฉ์์ "_id" ํ๋๊ฐ
-
Data Params
None
-
Success Response:
-
Code: 200
Content:{ "result": "ok", "comments": [ ... ] }
- result
- string
- ์์ฒญ์ ๋ํ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ["ok", "fail", "error"]
- message
- string
- ์ฒ๋ฆฌ ๊ฒฐ๊ณผ์ ๋ํ ์ถ๊ฐ ๋ฉ์์ง
- comments
- Array<CommentModel>
- ์์ฒญ์ด ์ฑ๊ณตํ ๊ฒฝ์ฐ ์์ฑํ ๋ฆฌ๋ทฐ ๋ชฉ๋ก
-
-
Error Response:
-
Code: 404 NOT FOUND
Content:{ "result": "fail", "message": "not found" }
OR
-
Code: 500 SERVER FAULT
Content:{ "result": "error", "message": "server fault" }
-
Code: 404 NOT FOUND
-
Sample Call:
GET /user/599297a54a03b51a11aa3d27/comments
-
Notes:
None
์ฌ์ฉ์๊ฐ ๋ณด์ ํ ์ฟ ํฐ ์ค, ์ฌ์ฉ ๊ฐ๋ฅํ ์ฟ ํฐ ๋ฆฌ์คํธ๋ฅผ ๋ฐํํฉ๋๋ค.
-
URL
/user/{userId}/coupons
-
Method:
GEt
-
URL Params
Required:
- userId
- string
- ์ฌ์ฉ์์ "_id" ํ๋ ๊ฐ
-
Data Params
None
-
Success Response:
-
Code: 200
Content:{ "result": "ok", "coupons": [ ... ] }
- result
- string
- ์์ฒญ์ ๋ํ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ["ok", "fail", "error"]
- message
- string
- ์ฒ๋ฆฌ ๊ฒฐ๊ณผ์ ๋ํ ์ถ๊ฐ ๋ฉ์์ง
- coupons
- Array<CouponModel>
- ์์ฒญ์ด ์ฑ๊ณตํ ๊ฒฝ์ฐ ์ฟ ํฐ ๋ฆฌ์คํธ
-
-
Error Response:
-
Code: 404 NOT FOUND
Content:{ "result": "fail", "message": "not found" }
OR
-
Code: 500 SERVER FAULT
Content:{ "result": "error", "message": "server fault" }
-
Code: 404 NOT FOUND
-
Sample Call:
GET /user/599297a54a03b51a11aa3d27/coupons
-
Notes:
None
์ฌ์ฉ์์ ์ฅ๋ฐ๊ตฌ๋์ ์ ํ์ ์ถ๊ฐํฉ๋๋ค.
-
URL
/user/{userId}/add-bucket
-
Method:
POST
-
URL Params
REQUIRED:
- userId
- string
- ์ฌ์ฉ์์ "_id" ํ๋๊ฐ
-
Data Params
Body
- product
- string
- ์ถ๊ฐํ ์ ํ์ "_id" ํ๋๊ฐ
- quantity
- integer
- ์ ํ์ ์๋
-
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(user)" }
{ "result": "fail", "message": "not found(product)" }
-
Code: 405 INVALID PARAMETERS
Content:{ "result": "fail", "message": "invalid parameters" }
OR
-
Code: 500 SERVER FAULT
Content:{ "result": "error", "message": "server fault" }
-
-
Sample Call:
{ "product": "...", "quantity": 1, }
-
Notes:
none
์ฅ๋ฐ๊ตฌ๋์ ์ถ๊ฐ๋ ์ ํ์ ์๋์ ๋ณ๊ฒฝํฉ๋๋ค.
-
URL
/user/{userId}/update-bucket
-
Method:
PUT
-
URL Params
REQUIRED:
- userId
- string
- ์ฌ์ฉ์์ "_id" ํ๋๊ฐ
-
Data Params
Body
- product
- string
- ๋ณ๊ฒฝํ ์ ํ์ "_id" ํ๋๊ฐ
- quantity
- integer
- ๋ณ๊ฒฝ๋ ์๋
-
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(user)" }
OR
-
Code: 500 SERVER FAULT
Content:{ "result": "error", "message": "server fault" }
-
Code: 404 NOT FOUND
-
Sample Call:
{ "product": "...", "quantity": 3 }
-
Notes:
- ์ฅ๋ฐ๊ตฌ๋์ product์ ์ผ์นํ๋ ์ ํ์ด ์๋ ๊ฒฝ์ฐ์๋ 200 ์๋ต์ ๋ฐํํ๋, message์ "not updated: bucket has no matched product"๊ฐ ์ ๋ฌ๋ฉ๋๋ค.
์ฅ๋ฐ๊ตฌ๋์ ์ถ๊ฐ๋ ์ ํ์ ์ ๊ฑฐํฉ๋๋ค.
-
URL
/user/{userId}/delete-from-bucket
-
Method:
PUT
-
URL Params
REQUIRED:
- userId
- string
- ์ฌ์ฉ์์ "_id" ํ๋๊ฐ
-
Data Params
Body
- product
- 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(user)" }
OR
-
Code: 500 SERVER FAULT
Content:{ "result": "error", "message": "server fault" }
-
Code: 404 NOT FOUND
-
Sample Call:
{ "product": "..." }
-
Notes:
- ์ฅ๋ฐ๊ตฌ๋์ product์ ์ผ์นํ๋ ์ ํ์ด ์๋ ๊ฒฝ์ฐ์๋ 200 ์๋ต์ ๋ฐํํ๋, message์ "not deleted: bucket has no matched product"๊ฐ ์ ๋ฌ๋ฉ๋๋ค.