Bibi's DevLog ๐ค๐
TIL - [20.08.30] API ์์ ์๋ฃ! + ๋ง๊ฐ์ ๊น์ง ํ ์ผ ์ ๋ฆฌ ๋ณธ๋ฌธ
TIL - [20.08.30] API ์์ ์๋ฃ! + ๋ง๊ฐ์ ๊น์ง ํ ์ผ ์ ๋ฆฌ
๋น๋น bibi 2020. 8. 30. 22:47๋ฐค9์์ ์ฝ๋ฉ์ ํ๋ฌ ์ค๋ค๋ใ ใ ์๋ฐ&์ฅ๋ณด๊ธฐ๋ก ํ๋ฃจ๊ฐ ๋ค ๊ฐ๋ค. ๊ทธ๋๋ ์กฐ๊ธ์ด๋ผ๋ ํ๊ณ ์์ผ์ง.
์ค๋ ํ ์ผ
API ์์ ์๋ฃํ๊ธฐ(๋ฐ์ฝ๋ ์ดํฐ, ID๊ฐ ์ด์ฉํด์)
TIL
>2. ์ผ์ ์กฐํ๋ ๋ฌด๋ํ๊ฒ ์ฑ๊ณต!
>3. ์ผ์ ๊ฒ์์..
1)๋ก๊ทธ์ธํ ํ์ ์์ด๋๋ก ์์ฑ๋ ์ผ์ ์ค์
2)๊ฒ์์ด์ ๋ง๋ ์ผ์ ์ ์ฐพ์์
3)๊ฒฐ๊ณผ๊ฐ์ผ๋ก ๋ณด์ฌ์ค์ผ.
๋ค ํ๋๋ฐ
โ 'Cannot read property 'length' of undefined ๋ผ๋ ์๋ฌ๊ฐ ๋จ๊ธธ๋ ์ด๊ฒ ๋ญ๊ฐ.. ์ฐพ์๋ดค๋๋ ํฌ๋กฌ console network์ฐฝ์ ํ์ฉํด ๋๋ฒ๊น
ํด๋ณด๋ผ๋ ์กฐ์ธ์ด ์์๋ค.
โํ์ฉํ๋
-๋ฐ์ดํฐ๊ฐ ํ๋ก ํธ์๋์์ ์ ๋์ด์ค๊ณ ์์ด undefined๊ฐ ๋ธ.
-๊ทธ๋ฐ๋ฐ ์๋ฒ ์ชฝ์์ ๋ณด๋ธ ๋ฐ์ดํฐ response['searched']๋ฅผ ์ฐ์ด๋ณด๋ ์ ๋ธ.
-๊ฒฐ๊ตญ ํ๋ก ํธ์๋์ ๋ฌธ์ ์ฌ์ ํ๋ก ํธ์๋๋ฅผ ์ดํด๋ณด๋..
searched๋ก ๋ค ๋ฐ๊ฟ๋์๋ ๋ณ์๋ช
์ค ํ๋๊ฐ 'serched'๋ก ๋์ด ์์ด์ ์ค๋ฅ๊ฐ ๋ ๊ฒ์ด์๋ค.
์์ํ ๋๋ฒ๊น
.. ์ฑ๊ณต..!
> 4. ์ผ์ ํธ์ง์..
4-1. 'ํธ์ง'ํด๋ฆญํ ์ผ์ ์กฐํํด์ ํ๋ก ํธ์๋์ ํธ์ง์ฐฝ value๊ฐ์ผ๋ก ๋ฃ์ด์ค
4-2 ์์ ํ ๋ด์ฉ์ ๋ค์ ์๋ฒ๋ก ๋ณด๋ด db์ ์ ์ฅ
->์ด ๋ถ๋ถ์ db์ _id๊ฐ์ ํ์ฉํ์ผ๋ฏ๋ก ํน๋ณํ ๊ฑด๋๋ฆด ๋ถ๋ถ์ด ์์๋ค.
๋ก๊ทธ์ธ๋์ด์๊ธฐ๋ง ํ๋ฉด 2.์ผ์ ์กฐํ๋ฅผ ํตํด ์์ ์ด ์์ฑํ ์ผ์ ๋ง ์กฐํ๋ ๊ฒ์ด๊ณ , ์กฐํ๋ ์ผ์ ์ค์์๋ง ํธ์ง์ด ๊ฐ๋ฅํ๊ณ , ํธ์งํ๋ ์ค์ ๊ฐ์๊ธฐ userID๊ฐ ๋ฐ๋ ์ผ๋ ์์ผ๋ฏ๋ก ๋ฑํ userID๊ฐ์ ํ์ฉํ ๋ถ๋ถ์ด ์๋ ๋ฏ. ๋ง๋ค์ด๋ API ๋ค์ ์ฌ์ฉํด ๋ณด์๋ ํฐ ๋ถํธํจ์ด ์์๋ค.
๋ค๋ง ๋ก๊ทธ์ธ์๊ฐ์ด ๋ง๋ฃ๋์์ ๋ ์ด์ ์์ด ํธ์ง/ํธ์งํ ๋ด์ฉ ์ ์ฅ์ด ์ ๋ ๋๊ฐ ์์ด์ @login.required๋ง ๋ถ๋ฌ๋ด ๋ก๊ทธ์ธ์ํ์ธ์ง ํ์ธํ๊ธฐ๋ก ํ๋ค.
>5. ์ผ์ ์ญ์ ๋..
์ด ๋ถ๋ถ์ 'userID'๋ณด๋ค๋ '_id'๋ฅผ ํ์ฉํ์ฌ ์ญ์ ํ๋ฉด ๋๋ ๋ถ๋ถ์ด๋ผ์ 4.์ผ์ ํธ์ง์ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํด ์์ ํ๋ค.
โdb์์ ์ผ์ ์ด ์ ์ญ์ ๋๋๋ฐ๋ ์ญ์ ์๋ฃ ๋ฉ์์ง๊ฐ ์๋ '์๋ฒ์ค๋ฅ!'๊ฐ ๋จ๊ธธ๋ ์ ๊ทธ๋ฐ๊ฐ ํด์ ๋ดค๋๋ฐ, ์ญ์ ์๋ฃ msg๋ ์ฝ์์ฐฝ์ผ๋ก ์ ๋์ด์ค๊ณ ์์๋ค.
โ์ดํด๋ณด๋ ๊ฒฐ๊ตญ ํด๋ผ์ด์ธํธ ๋ฌธ์ ์๋๋ฐ _id๊ฐ์ ๋ณด๋ด๋๋ผ .dumps๋ก ์ธ์ฝ๋ฉํ ๋ฐ์ดํฐ๋ฅผ 'response = JSON.parse(response)'๋ก ๋์ฝ๋ฉํด์ฃผ์ง ์์์ ๊ทธ๋ฐ ๊ฑฐ์๋ค. ์ด ๊ตฌ๋ฌธ์ ์ถ๊ฐํ๋ '์๋ฒ ์ค๋ฅ!'๋ ๋จ์ง ์์!
๋๋์ด API์์ ์ ๋ค ๋ง์ณค๋ค! ๐
ํ์คํ ์ง๋ฌธ๋ต๋ณ, ๊ณต๋ถ๋ฅผ ํตํด ๊ฐ๋
์ดํด๊ฐ ์ข ๋๋๊น ์ค๋์ ์ฝ์ง๋ ๊ฑฐ์ ์ ํ๊ณ , ์๋ฌ๊ฐ ๋จ๋๋ผ๋ ๊ธ๋ฐฉ ๊ณ ์น ์ ์์๋ค.๐
์ด์ ์์ผ๋ก ํ ์ผ์ ์ ๋ฆฌ, ๊ณํํ๊ณ ์์ผ๊ฒ ๋ค.
+ ๊ทธ๋ฆฌ๊ณ ์ค๋ ์ฝ๋ ์์ ํ๋ค ๋ณด๋ this์ e์ ๋ํด์ ์ข ํท๊ฐ๋ฆฌ๋๋ฐ, ํํฐ๋๊ป ์ง๋ฌธํ๊ฑฐ๋ ๊ธฐํ ๋ ๋ ๊ตฌ๊ธ๋ง์ ์์ธํ ํด ๋ด์ผ๊ฒ ๋ค!
์์ผ๋ก ํ ์ผ
2. ๋ ์จ openAPI์ฐพ์์ ์ ๋ฆฌํ๊ณ , ๋ด ํ๋ก์ ํธ์ ๋ถ๋ฌ์์ ํ์ฉํ๊ธฐ
-์ฐพ์๋ณด๋..
์๋ ํ์ฉํด๋ณด๋ ค๊ณ ํ๋ '์ผ์ด์จ๋' ๋ API์๋น์ค๋ฅผ 2017๋
์ ์ ์ ์ค๋จ.
์๋ก ์ฐพ์๋ณธ '์จ๋์์ด'๋ ์ ๋ฃ๋ก API์๋น์ค ์ ๊ณต.
๋ค์ด๋ฒ, ์นด์นด์ค๋ ๋ ์จAPI ์ ๊ณตํ์ง ์์.
๊ฒฐ๊ตญ ๊ตฌ๊ธ๋ง์ผ๋ก '๋ ์จAPI'๋ฅผ ๊ฒ์ํ๋ฉด ๊ฐ์ฅ ๋จผ์ ๋์ค๋ Open Weather API๋ฅผ ์ฐ์ ํ์ฉํด ๋ด์ผ๊ฒ ๋ค.
openweathermap.org/API
-๊ตฌํ๊ณํ : ๋น์ผ ๋ํ๋ฏผ๊ตญ ์ค์ -์คํ ๋ ์จ๋ฅผ ์กฐํํด ๋ก๊ทธ์ธ์ ํ ํ๋ฉด์์ "์ค๋์ ๋ ์จ๋ (์ค์ ๋ ์จ)-(์คํ๋ ์จ)์ ๋๋ค. (๋ ์จ๋ณ ๋ณํ๋ ๋ฌธ๊ตฌ)" ๋ฅผ ๋ณด์ด๊ฒ ํ๊ณ ์ถ๋ค. api์ ๋ณด ๋ฐ์์ ๊ฐ ๋ ์จ (๋ง์/ํ๋ฆผ/๋น..)์ ๋ง๋ ๋ฌธ๊ตฌ๋ฅผ ์กฐ๊ฑด๋ฌธ์ผ๋ก ๋ณด์ฌ์ค ๊ณํ
3. ์๋ฆผ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ
-์นดํก: ์นด์นด์คํก openAPI ํ์ฉํด ํ์ด์ฌ์ผ๋ก ์นดํก ๋ณด๋ด๊ธฐ (์ฐธ๊ณ :https://ai-creator.tistory.com/23) ๋์๊ฒ ๋ฉ์์ง ๋ณด๋ด๊ธฐ.
-๋ฉ์ผ: ์์
์๋ฃ 'ํ๊ฑธ์ ๋' ์ฐธ๊ณ ํด ํ์ด์ฌ์ผ๋ก ๋ฉ์ผ ๋ณด๋ด๊ธฐ.
->๋๋ค ์ฌ์ฉ์๊ฐ ์ค์ ํ ์๊ฐ์ ์๋ฆผ ๋ณด๋ด๊ธฐ!
์ฌ์ค '๋ฉ์ด์ ๋'์ ๋ฉ์ธ ๊ธฐ๋ฅ์ด๊ธฐ ๋๋ฌธ์ 2.๋ ์จ์กฐํ๋ณด๋ค ๋จผ์ ํ๊ณ ์ถ๋ค. ์ฐ์ ์์ง์ ์ฐธ๊ณ ์๋ฃ๊ฐ ์๋ ๋ฉ์ผ๋ณด๋ด๊ธฐ๋ถํฐ ํด ๋ณด๊ณ , ๊ทธ ๋ค์ ์นดํก์๋ฆผ์ ๊ตฌ๊ธ๋ง์ ํตํด ๊ตฌํํด ๋ด์ผ๊ฒ ๋ค. + ๊ฐ๋ฅํ ์นดํก ๋์๊ฒ ๋ณด๋ด๊ธฐ๊ฐ ์๋ ์นดํก์ฑ๋์ ํตํ ์๋ฆผ๋ฉ์์ง๋ก!
+ ์ผ์ ๊ฒ์ ์กฐ๊ฑด ์ํ?ํ๊ธฐ(20.08.26 TIL ์ฐธ๊ณ )
+ 7์ผ, 30์ผ ๋ ์ด์์ ๋ง๋ค๊ธฐ
+ ์์ด๋(์ด๋ฉ์ผ) ์ค๋ณต๊ฒ์ฌ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ. (๋ฒํผ๊ณผ ํจ์๋ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋ )
->์ด ์ ์ ํ๋ก์ ํธ ๋ง๊ฐ ์ ๋ฐ๋์ ํ๊ณ ์ถ์ ๊ธฐ๋ฅ๋ค. ์ ์ ๋๋ฉด ๋ด์ผ ์์ ์ด๋ ์ฌ๋์ฑ๋ ํตํด ์ง๋ฌธํด์๋ผ๋ ํด๋ด์ผ์ง. ํนํ ์์ด๋(์ด๋ฉ์ผ)์ค๋ณต๊ฒ์ฌ๊ธฐ๋ฅ!! ๊ทธ๋ฅ list(db.user.id)์ ์ ๋ ฅ๊ฐ์ด ์ผ์นํ๋ฉด ์ค๋ณต์ด๋ผ๊ณ ์ผ๋ฟ ๋์ฐ๋ฉด ๋๋ ค๋? :)
๋ด์ผ๋ ์๋ฐ 10์์ถ๊ทผ..ใ
ใ
์ผ๋ฅธ ์์ผ๊ฒ ๋ค. ๋ด์ผ ํด๊ทผํ๊ณ ์คํ๋ฅดํ ์์
์ ๊น์ง ์ด์ฌํ ๊ฐ๋ฐ๊ฐ๋ฐ ํด์ผ์ง.๐ช
์ค๋์ ์์๊ณต๋ถ์๊ฐ - 1:39:26
'TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
TIL - [20.09.01] (0) | 2020.09.01 |
---|---|
TIL - [20.08.31] ์ผ์ ์๋ฆผ(์นดํก๋ฉ์์ง, ์ด๋ฉ์ผ) ์ค๊ณ์ ๊ตฌ๊ธ๋ง +์์ (0) | 2020.08.31 |
TIL - [20.08.29] (0) | 2020.08.29 |
TIL - [20.08.28] ์ฝ์ง๊ณผ ํํฐ๋๊ป ์ง๋ฌธ (0) | 2020.08.28 |
TIL - [20.08.27] : ํ๋ก์ ํธ D-6. ๋ก๊ทธ์ธ/ํ์๊ฐ์ ๊ตฌํ ์์ (0) | 2020.08.27 |