Bibi's DevLog ๐ค๐
TIL - [20.08.24] ์ผ์ ํธ์งAPI ์ฝ์ง๊ณผ ํผ๋๋ฐฑ ๋ณธ๋ฌธ
์์ ๊ฐ๊ธฐ ์ ๊น์ง ์ต๋ํ ๋ง์ด ํด๋์!
์ค๋ ํ ์ผ
API ์์ฑ
-์ผ์ ๊ฒ์API์์ฑ(๋๋ฒ๊น
)
-์ผ์ ํธ์งAPI ๋ง๋ค๊ธฐ
-๊ทธ์ธ API ์ค๊ณ, ๋ง๋ค๊ธฐ
TIL
์ผ์ ์กฐํ API
์์์ผ, ์ข
๋ฃ์ผ๊ณผ ํจ๊ป ์์ผ์ด ํ์๋๋ฉด ์ข๊ฒ ์ด์
์์ผ์ฐพ๋ ํจ์(show_day)๋ฅผ ์ผ์ ์กฐํAPI์ ์ ๋นํ ์ฝ์
, ์กฐ์ ํด๋ดค๋๋ฐ ์ ์ ๋๋ค. ใ
ใ
API ๋ค ๋ง๋ ๋ค์์ ๋ค์ ๊ตฌ๊ธ๋งํด์ ๋ง๋ค์ด์ผ๊ฒ ๋ค.
์ผ์ ๊ฒ์API
-์ฌ์ ํ ๊ฒ์์ด๋ก ์๋ฒ์์ ์ ์ก๋ ๋๊ณ console์ฐฝ์๋ ์ฐํ๋๋ฐ ํ๋ก ํธ์๋์ ๊ฒฐ๊ณผ๊ฐ์ด card๋ก append๊ฐ ์ ๋๋ค. ใ
ใ
+ ๋ณด์์
๊ฒ์๊ฒฐ๊ณผ ์์ผ๋ฉด ์๋ค๊ณ ์ผ๋ฟ ๋์ฐ๊ธฐ
๊ฒ์๋๋ ์กฐ๊ฑด ์ธ๋ถํํ๊ธฐ-๊ตฌ๊ธ๋ง. '๋ฐฅ์ ๋จน๊ธฐ'์ผ์ -> '๋จน๊ธฐ'๋ง ๊ฒ์ํด๋ ๋์ค๊ฒ..
์ผ์ ํธ์งAPI(Update)-post๋ฐฉ์.
๋ด๊ฐ ์๊ฐํ ์ผ์ ํธ์ง์ ์๊ณ ๋ฆฌ์ฆ์..
1. 'ํธ์ง' ๋ฒํผ์ ๋๋ฅธ๋ค
2. ์ผ์ ๋ช
(todo), ์์์ผ(start_date), ์ข
๋ฃ์ผ(end_date), .. ๋ฉ๋ชจ(memo) ๋ฑ ์ผ์ ์์ฑํ ๋ ๋ฃ์ ๋ชจ๋ ์ ๋ณด๋ค์ด ์์ ๊ฐ๋ฅํด์ง๋ค
-'์ผ์ ๋ช
'์ผ๋ก ํด๋น ์ผ์ ์ ์ฐพ์์, ์ผ์ ์์ฑ๊ณผ ๋์ผํ ๋์์ data๋ฅผ ์์ ๊ฐ๋ฅํ๋๋ก ํ๋ค.
:๊ฒ์๋or์กฐํ๋ ์ผ์ ํญ๋ชฉ์ ๋ชจ๋ ํ์ -> ์ฌ์ฉ์๋ ์ํ๋ ์ ๋ณด๋ฅผ ์์
3. ์์ ๋ ์ ๋ณด๋ฅผ ์ ์ถํด db์ ์
๋ฐ์ดํธํ๋ค.
: ์์ ๋ ๋ถ๋ถ์ ํฌํจํด ๋ชจ๋ ์ผ์ ํญ๋ชฉ์ ๋ค์ db์ update_one().
์ด ์ค 2๋ฒ ๊ณผ์ ์ ์ด๋ป๊ฒ ๊ตฌํํด์ผ ํ ์ง ๊ณ ๋ฏผ์ด๋ค.
-์ผ๋ฐ ์บ๋ฆฐ๋์ดํ์ฒ๋ผ ๋๋ฅด๋ฉด ์ ์ฐฝ์ด ๋์ค๊ณ ๊ธฐ์กด ์ ๋ณด๋ฅผ ๋ถ๋ฌ์ ๊ทธ ๋ด์ฉ์ ํธ์งํ ์ ์๊ฒ ํ ๊ฒ์ธ๊ฐ?
(์ฝ๊ฐ ์ด๋ ค์๋ณด์ธ๋ค)
-์๋๋ฉด ํธ์ง๋ฒํผ์ ๋๋ฅด๋ฉด ๊ฐ ํญ๋ชฉ์ด input์ฐฝ์ผ๋ก ๋ณํด ๊ฑฐ๊ธฐ์ ํธ์งํ ์ ๋ณด๋ฅผ ์
๋ ฅํ ์ ์๊ฒ ํ ๊ฒ์ธ๊ฐ?
๋ด ์์ค์ ๊ณ ๋ คํ์ ๋ ์๋ฌด๋๋ ํ์๋ก ๊ตฌํํด์ผ ํ ๊ฒ ๊ฐ์๋ฐ, ์ด๊ฒ๋ ๋ณดํต ์ผ์ ์๋ ๋ฏ.
-์ต์ํ์ง ์์ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ ๋ html์ ๋ฐ๋ก ๋ง๋ค์ด ์์ฑ ํ, ์ ๋์ํ๋ฉด ๋ณต๋ถํ๋ผ๊ณ ํ๋ค.
๊ทธ๋์ testํ์ผ์ ์๋ก ๋ง๋ค์ด, ๊ฑฐ๊ธฐ์์ ๊ธฐ์กด todo card์ ๋์ผํ์ง๋ง 'ํธ์ง๊ฐ๋ฅํ ์ฐฝ'์ ๋จผ์ ๋ง๋ค์ด๋ณด๊ธฐ๋ก.
https://hianna.tistory.com/318
๊ฐ input type๋ณ ๊ธฐ๋ณธ value๊ฐ ์ ๋ ฅํ์์ ์์๋ณด๊ณ ๊ธฐ๋ณธ๊ฐ์ ๋ฃ์ด๋ณด์๋ค.
์ด๋์ ์ด๋ค ํ์์ผ๋ก ๊ธฐ๋ณธ๊ฐ์ด ๋ค์ด๊ฐ๋์ง ์์์ผ๋ ์ด์ ..
(1)์ผ์ ๋ช
(todo)๋ฅผ ํค์๋๋ก, db์์ ํธ์ง์ ์ ํํ ์ผ์ data๋ฅผ ์ฐพ๊ณ
(2)๋ถ๋ฌ์จ data๋ฅผ todo card์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ฃ์ด ํธ์ง์ด ์ฝ๊ฒ ํ๊ณ ,
(3)ํธ์ง๋ ์ผ์ ์ ๋ค์ ์ด todo card ํ์์ผ๋ก appendํ๊ฒ ๋ง๋ค๊ณ ํธ์ง๋ ๋ฐ์ดํฐ๋ฅผ db๋ก ๋ณด๋ด๋ฉด ๋๊ฒ ๋ค.
(1)์ผ์ ๋ช
(todo)๋ฅผ ํค์๋๋ก, db์์ ํธ์ง์ ์ ํํ ์ผ์ data๋ฅผ ์ฐพ๊ณ
: ์ด๊ฒ๋ถํฐ ์๊ฐ๋ณด๋ค ์ด๋ ค์ ๋คใ
ใ
ใ
์๋ํ๋ฉด ์ง๊ธ๊น์ง ์ค์ตํ๋ฉด์๋ jQuery ์์์์, ํ์์์ ์ ํ์๋ฅผ ๊ฑฐ์ ์ฌ์ฉํด๋ณด์ง ์์๊ธฐ ๋๋ฌธ. ๊ตฌ๊ธ๋ง์ผ๋ก ํด๊ฒฐํ๋ค.
https://jdm.kr/blog/144 ์ ์ด์ฟผ๋ฆฌ ์์์์ ๊ฐ์ ธ์ค๊ธฐ : .parent() ์ฌ์ฉ
https://sseambong.tistory.com/218 ์ ์ด์ฟผ๋ฆฌ ํ์์์ ๊ฐ์ ธ์ค๊ธฐ : .find('#id๊ฐ')์ผ๋ก ํ์ฉ
๊ทธ๋์ 'ํธ์ง'๋ฒํผ์ ์์์์์ธ <div class="schedule">๋ฅผ ์ ํํ ๋ค์,
๋ค์ ํ์์์ ์ค ํ๋์ธ <input type='text' value="">์ ๊ฐ์ ๊ฐ์ ธ์ค๋ ๋ฐ ์ฑ๊ณตํ๋ค!
์ด์ ์ด ๊ฐ์ผ๋ก db์์ ํธ์งํ data๋ฅผ ์ฐพ์ผ๋ฉด ๋๋ค.
<< ๋ฌธ์ >> : ์ฒซ ํ๋ฉด์๋ ํธ์งํ ์ผ์ ์ธ์๋ ์ ์ฒด ์ผ์ ์ด ๋ชจ๋ ๋์ค๋๋ฐ, ์ด๋ป๊ฒ ํธ์ง๋ฒํผ์ ํด๋ฆญํ '๊ทธ' ์ผ์ ์ ์ผ์ ๋ช (todo)๋ง ๊ฐ์ ธ์ค๋๊ฐ??..
->> ๊ทธ๋ฅ ์ค๋ ์์ ๊ฐ์ ํํฐ๋๊ป ์ง๋ฌธํด์ผ๊ฒ ๋ค.. ใ ใ ํํ
์์ผ๋ก ํ ์ผ
-'์ข
์ผ'๊ธฐ๋ฅ ๊ตฌํ : ์ด ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํ๋ฉด ์์์ผ=์ข
๋ฃ์ผ๋ก ๋ง๋ค๊ณ input type='time' ๊ฐ์ 0์ผ๋ก ํ๊ธฐ.
์จํด๋ฆญ? ํจ์์ ์กฐ๊ฑด๋ฌธ ์ฌ์ฉํด ๊ตฌํ. ์ ํ๋์ด์์ ๋ ์คํํ ๊ตฌ๋ฌธ/์ ํ๋์ด์์ง ์์ ๋ ์คํํ ๊ตฌ๋ฌธ.
-์ผ์ ์ญ์ : ์ด ์ผ์ ์ ์ญ์ ํ ์ง ํ๋ฒ ๋ ํ์ธ์ผ๋ฟ์ ๋์ฐ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํด์ผ๊ฒ ๋ค. ๋๋ฅด์๋ง์ ๋ฐ๋ก ์ญ์ ์๋ฃ! ํ๋ ์ค์๋ก ๋๋ฅด๋ฉด ํฐ์ผ๋ ๋ฏ.
- ์๋ฆผ ๊ธฐ๋ฅ ๊ตฌํ : ์นดํก / ์ด๋ฉ์ผ. ์๋ฒ, ๊ธฐ์กด API์์ ๊ณผ ์๋ฆผ๊ธฐ๋ฅ API๋ง๋ค๊ธฐ.
์ง๊ธ๊น์ง ๋ง๋ ์นดํก, ์ด๋ฉ์ผ ์๋ฆผ๊ธฐ๋ฅ์ input๊ฐ์ผ๋ก๋ ๋ฐ์ํ์ง ์์๊ธฐ ๋๋ฌธ์..(์ผ๋จ ์๋๊ฑฐ๋ผ๋ ํด๋์ผ๋ ค๊ณ )
์ด ๋ถ๋ถ์ ๊ณต๋ถํ๊ณ ๊ตฌ๊ธ๋งํ๋ฉด์ ๊ตฌํํด์ผ ํ๋ค.
์์์ผ ํ ๊ฒ์
- ์นดํก/์ด๋ฉ์ผ ์ ํํ๋ input type="radio" ์ data๋ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋์ด db์ ๋ค์ด๊ฐ๋์ง? true/false? 0/1? ์๋ฌด๊ฒ๋ ์ฒดํฌ ์ ๋์ด ์์ ๋๋?
- radio๊ฐ ์๋ checkbox๋ก ํ ๊น?.. radio๋ก ํ๋ ํด๋ฆญํ๋ฉด ์ ํํด์ ๊ฐ ์ ๋๋ค. ์ด๊ฑธ๋ก ๋ง์ ๋ถํธ์ด ๋ฐ์ํ ์ง..?
- ์นดํก ์๋ฆผ ๋ณด๋ด์ฃผ๋ ํ๋ฌ์ค์น๊ตฌ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง? ๊ฐ์
, ๊ณ์ ์์ฑ, testํด๋ณด๊ธฐ.
ํํฐ๋ ํผ๋๋ฐฑ
1. ์ผ์ ๊ฒ์API์์ ์์๋ ์ค๋ฅ
let serched_list = response['serched'];
console.log(serched_list.length)
for (i = 0; i < serched_list.length; i++)
์์ฑ ์ฝ๋.
#response๋ ๋ฐฐ์ด์ด ์๋๊ธฐ ๋๋ฌธ์ response.length๋ก ์ฌ์ฉํ๋ฉด ์ ๋๋ค. console.log๋ก ๊น๋ณด๋ฉด response ์์ 'serched' ๊ฐ ๋ฆฌ์คํธ ํ์์ด์๋ค. ๋ฐ๋ผ์ response.length ๊ฐ ์๋ response['serched'].length๋ก ์กฐ๊ฑด๋ฌธ ๋์์ผ. ๋๋ ์์ ์์ฑ์ฝ๋์ฒ๋ผ ํ๋์ ๋ณ์๋ช ์ผ๋ก ๋ฐ๋ก ์ง์ ํด์ฃผ๊ณ ๊ทธ๊ฑธ ์ด๋ค.
2.์ผ์ ํธ์งAPI์์ ํ์ํ ์กฐ์น
์ผ์ ํธ์ง์ ๊ธฐ๋ณธ์ ์ผ๋ก
(1) ํธ์งํ ๋ด์ฉ ์กฐํ(GET) (2) ํธ์ง๋ ๋ด์ฉ๋ฐ์์ db์ ์ ์ฅ(POST)
์ด๋ฏ๋ก API๋ 2๊ฐ๊ฐ ํ์ํ๋ค.
(1) ํธ์ง์ ํด๋ฆญํ ์ผ์ ์ ๊ฒ์ํด์ ๊ทธ data๋ฅผ ๋ถ๋ฌ์จ๋ค. (GET)
- ํธ์ง ํด๋ฆญํ ์ผ์ ์ ์ผ์ ๋ช
๋์ , ์ผ์ ๋ช
์ด ๋๊ฐ์๋ ์ ๋ ๊ฒน์น์ง ์๋ 'db์์ _id๊ฐ'์ผ๋ก ์ฐพ์์จ๋ค.
: ['_id'] ์ ['$oid'] ํ์. ๊ทธ๋ฌ๋ฏ๋ก ์์์์ ์ฐพ์ ํ์๊ฐ ์๋ค.
์๋ฒ(ํ์ด์ฌ)์์๋ find()๋์ find_one์ผ๋ก ์ฌ์ผ ํ๋ค.
(๋จ, _id๊ฐ์ ํ์ด์ฌ์์ jsonify ๋์ง ์์ ์ค๋ฅ ๋ฐ์ - ์ด๋ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์นํด์ ๊ทธ๊ฑธ๋ก ์ฌ์ฉ. ๊ตฌ๊ธ๋งํ๊ธฐ)
-๊ทธ๋ฌ๊ธฐ ์ํด์ ์กฐํํ ๋์๋ _id๊ฐ์ ์จ๊ฒจ์ ๊ฐ์ ธ์จ๋ค. → '์ผ์ ์กฐํAPI'๋ ์ฝ๊ฐ ์์ ํจ.(์ผ์ ์กฐํ๋ _id๋ก ํด์ผ ํ๋ฏ๋ก)
(2) 2. fix_card์ ์์ ๋ ๋ด์ฉ input๊ฐ์ ๋ค์ DB์ ์ ์ฅํ๋ค(POST) : API ๋ง๋ค์ด์ผ ํจ! ์ฌ๊ธฐ๋ถํด ๋ด๊ฐ ํ๊ธฐ.
๋ด์ผ ํ ์ผ
์์
๋ด์ฉ ๋ณต์ตํ๊ธฐ.
ํํฐ๋์ด ์ฐพ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์ฝ๋ ๊ตฌ๊ธ๋งํด์ ์ ๋ฆฌํด๋๊ธฐ
๋ด ์ฝ๋ ๊ตฌ์กฐ ํ์
ํ๊ธฐ(์ ์ฒด์ ์ผ๋ก)
์ดํ ์ผ์ ์ญ์ ๋ id๊ฐ์ผ๋ก ์ฐพ์์ ์ญ์ ๋๋๋ก ์์ ํ๊ธฐ. (์ง๊ธ๊น์ง ๋ง๋ API ๋ชจ๋ _id๊ฐ ๊ธฐ๋ฐ์ผ๋ก ๋์๋๋๋ก ์์ !!)
์ค๋ ์ค๊ณต๋ถ์๊ฐ - 3:39:41 + ์คํ๋ฅดํ ์์ ์๊ฐ !
์ด์ ํ๋ก์ ํธ ๋๋๋ ๋ ๊น์ง ์ฝ 10์ผ ๋จ์๋ค..!! ๋๋ ์ด์ฌํ ํ์
'TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
TIL - [20.08.26] (0) | 2020.08.26 |
---|---|
TIL - [20.08.25] ์ด์ ์์ ๋ด์ฉ ๋ณต์ต, ์ ๋ฆฌ (0) | 2020.08.25 |
TIL - [20.08.23] : ํธ์ง/์ญ์ ๋ฒํผ๋ง๋ฆ, ๊ฒ์์ฐฝ/๊ฒ์๋ฒํผ ๋ง๋ฆ, ์ผ์ ์ญ์ API-์์ฑ, ์ผ์ ๊ฒ์API-์ ์์ค (0) | 2020.08.23 |
TIL - [20.08.22] - ํ์์ฝ๋ฉ (0) | 2020.08.22 |
TIL - [20.08.21] (0) | 2020.08.21 |