v2_programspec_collection - 100-hours-a-week/KTB4-8th-BE GitHub Wiki
ํ๋ก๊ทธ๋จ ์ ์์ - ๋ณด๊ดํจ ์์ธ ํ์ด์ง
์ฅ์ ํญ
ํ์ํ API
-
๋ณด๊ดํ ์ฅ์ ๋ชฉ๋ก ์กฐํ API(
GET /api/v2/member/saved-journey?type=place&filterBy=location)-
type: ์ฅ์, ์ด๋ฒคํธ, ์ฝ์ค (String)
-
filterBy: ํํฐ๋ง ๊ธฐ์ค (String)
- ์ง์ญ ๊ธฐ๋ฐ ํํฐ๋ง๋ง ์ ๊ณตํ๋ฏ๋ก "location"๋ง ์ ํจ
-
์๋ต ๋ณธ๋ฌธ์ผ๋ก ํ์ํ ๊ฐ:
๊ฐ ์ฅ์์
- ๋ณด๊ดํจ ID (๋งํฌ ์ ๊ณต์ฉ)
- ์ด๋ฆ
- ์นดํ ๊ณ ๋ฆฌ (์นดํ ๋ฑ)
- ์ง์ญ (์+๊ตฌ)
- ์ค๋ช
{
"places": {
{
"place_id": Integer,
"name": String,
"category": String,
"description": String,
"address_sg": String (์ + ๊ตฌ)
},
...
}
}
์๋ฌธ์
- '์ ์ฒด ์ ํ'์ ์ ๋ ฌ ๊ธฐ์ค์ ํ๋ฉด ์ ์์์ ์ํ๋ฉด ๋๋ฏธ ๊ฐ์. ๋๋ฏธ ๊ฐ์ด ๋ง๋์ง?
์ฅ์ ์ ๋ ฌ์ ๊ธฐ์ค์ด ๋ ์ฅ์๋ ํ๋ฉด ์ ์์์ ๋์จ ์์์ฒ๋ผ ์์ธ, ๊ฒฝ๊ธฐ, ... ์ธ์ง, ์๋๋ฉด ํ๋ฉด ์ ์์์ ๊ธฐ์ ๋ ๋๋ก ๋ชจ๋ ์, ๋๋ฅผ ํฌํจํ๋ ์ง?(ํด๊ฒฐ)- ๋ชจ๋ ๋์ ํน๋ณ์/๊ด์ญ์๋ก ์ ํํ๋ ๊ฒ์ผ๋ก ๊ฒฐ์ ๋จ (10-07)
์ด๋ฒคํธ ํญ
์ง๋ ์ด๋ฒคํธ ํญ์ ์ด๋ฒคํธ ํญ์ ํฉ๋ณ๋ ์์
ํ์ํ API
-
๋ณด๊ดํ ์ด๋ฒคํธ ์กฐํ API(
GET /api/v2/member/saved-journey?type=event&enableEnded=true)- type: ์ฅ์, ์ด๋ฒคํธ, ์ฝ์ค (String)
- enableEnded: ์ง๋ ์ด๋ฒคํธ๋ฅผ ํ์ํ ์ง ์ฌ๋ถ (Boolean)
์๋ต ๋ณธ๋ฌธ์ผ๋ก ํ์ํ ๊ฐ:
๊ฐ ์ด๋ฒคํธ์
- ๋ณด๊ดํจ ID (๋งํฌ ์ ๊ณต์ฉ)
- ์ด๋ฆ
- ์นดํ ๊ณ ๋ฆฌ
- ์ค๋ช
- ์์์ผ (๋ฏธ์ ๊ฐ๋ฅ)
- ๋ง๊ฐ์ผ (๋ฏธ์ ๊ฐ๋ฅ)
- ์งํ๋ ์ฅ์์ ์ฃผ์ (์+๊ตฌ)
{
"events": {
{
"event_id": Integer,
"name": String,
"category": String,
"description": String,
"start_date": Date("yyyy-mm-dd", Nullable),
"end_date": Date("yyyy-mm-dd", Nullable),
"place" : {
"name": String,
"address_sg": String(์ + ๊ตฌ)
}
},
...
}
}
์ ๋ณด
์ด๋ฒคํธ๋ ์์์ผ, ์ข ๋ฃ์ผ์ ๊ฐ์ ธ์ผ ํ๋ฉฐ, Null์ด ๊ฐ๋ฅํจ
์๋ฌธ์
์งํ๋ ์ฅ์๋ผ๋ ๊ฒ ๋งค์ฐ ์ ๋งคํจ(ํด๊ฒฐ)์ข ๋ ๋ช ํํ ๊ธฐ์ค์ ์ ํ๋ฉด ์ข์ ๊ฒ ๊ฐ์(ํด๊ฒฐ)์์ ๋ถ์ API์์ AI ์๋ฒ๊ฐ ์ฅ์๋ช ์ ๋๋ ์ถ๊ฐ๋ก ์ค์ผ ํ ๋ฏ.(ํด๊ฒฐ)- ํ๋์์ ๊ฑด๋ฌผ๋ช ์ ๊ฑฐ(10-07)
์ฝ์ค ํญ
ํ์ํ API
-
๋ณด๊ดํ ์ฝ์ค ์กฐํ API(
GET /api/v2/member/saved-journey?type=course&filterBy=location)-
type: ์ฅ์, ์ด๋ฒคํธ, ์ฝ์ค (String)
-
filterBy: ํํฐ๋ง ๊ธฐ์ค (String)
- ์ง์ญ ๊ธฐ๋ฐ ํํฐ๋ง๋ง ์ ๊ณตํ๋ฏ๋ก "location"๋ง ์ ํจ
-
์๋ต ๋ณธ๋ฌธ์ผ๋ก ํ์ํ ๊ฐ:
๊ฐ ์ฝ์ค์
- ๋ณด๊ดํจ ID (๋งํฌ ์ ๊ณต์ฉ)
- ์ด๋ฆ
- ์ง์ญ(์ + ๊ตฌ)
- ๊ตฌ์ฑ ์ฅ์/์ด๋ฒคํธ ์
- ์ด ์์ ์๊ฐ (์๊ฐ ๋จ์)
- ์ ์ฅ์ผ
- ๊ตฌ์ฑ ์ฅ์/์ด๋ฒคํธ
- ์๋ฒ
- ์ด๋ฆ
- ์นดํ ๊ณ ๋ฆฌ (์นดํ, ์ด๋ฒคํธ, ๋ฑ...)
- ์ข ๋ฃ ์ฌ๋ถ (์ด๋ฒคํธ์ ๊ฒฝ์ฐ)
{
"courses": {
{
"course_id": Integer,
"name": String,
"address_sg": String (์ + ๊ตฌ),
"duration_hours": Integer,
"save_date": Date("YYYY-MM-DD"),
"stops": {
"count": Integer,
"items": {
{
"sequence": Integer,
"stop_id": Integer,
"name": String,
"type": String,
"category": String,
"start_date": Date("YYYY-MM-DD", Nullable(type="event"๊ฐ ์๋ ์)),
"end_date": Date("YYYY-MM-DD", Nullable(type="event"๊ฐ ์๋ ์))
},
...
}
}
},
...
}
}
์ ๋ณด
์ฝ์ค ํ๋ณด์ ์ด์ ๊ธฐ๊ฐ์ด null์ธ ์ด๋ฒคํธ๋ค์ ํฌํจ๋ ์ ์๋ค
์๋ฌธ์
์ฅ์ ํญ๊ณผ ๋์ผ
์์ธ ์ฒ๋ฆฌ
- ๊ฐ ์กฐํ ์์ฒญ API๋ ์ ํํ ์กฐ๊ฑด์ ํด๋นํ ํญ๋ชฉ์ด ์์ ์ ๋น ๋ฆฌ์คํธ๋ฅผ ๋ฐํํด์ผ ํจ
- ๊ฐ ์กฐํ ์์ฒญ API๋ ํ์์์ ์์ธ ์ ์๋ต ๊ฒฐ๊ณผ๋ฅผ ๊ตฌํ๋์ด์ผ ํจ