API : Application Programming Interface, ํ๋ก๊ทธ๋จ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ฒ ํ์ฉํ๋ ์ ์
์น API : ๋ค๋ฅธ ์น ์๋น์ค์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ฑฐ๋ ์์์ ๊ฐ์ ธ์ฌ ์ ์๋ ์ฐฝ๊ตฌ, URL์ ํตํด ์ ๊ทผํ ์ ์๊ฒ ๋ง๋ ๊ฒ์ด ์น API ์๋ฒ
ํ๋ฉด์ ์ผ๋ก ๋ณด์ด๋ ์น ์ฌ์ดํธ์ ์ ๋ณด๋ฅผ ์ผ์ ์ฃผ๊ธฐ๋ก ์์งํด ์์ฒด์ ์ผ๋ก ๊ฐ๊ณตํ๋ ๊ธฐ์
๋ค๋ฅธ ์๋ฒ์ NodeBird ์๋น์ค์ ๊ฒ์๊ธ, ํด์ํ๊ทธ, ์ฌ์ฉ์ ์ ๋ณด๋ฅผ JSON ํ์์ผ๋ก ์ ๊ณตํ๋ ๊ฒ์ด ๋ชฉํ!
๋จ, ์ธ์ฆ๋ ์ฌ์ฉ์์๊ฒ ์ ํด์ง ํ ๋น๋ ์์์ API ํธ์ถ์ ํ์ฉํ๋ค
API๋ ํ์ธ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ธ ๋งํผ, ๋ณ๋์ ์ธ์ฆ ๊ณผ์ ์ด ํ์ํ๋ค.
์ด๋ฅผ ์ํด์๋ JWT ํ ํฐ์ผ๋ก ์ธ์ฆํ์ฌ ์ฌ์ฉ์๋ฅผ ๊ตฌ๋ณํ๊ธฐ๋ ํ๋ค.
JSON ํ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ํ ํฐ์ด๋ค.
Header (ํค๋) : ์๋ช ์์ฑ์ ์ํด ์ด๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ์ง ์๋ณํ๋ค.
PayRoad (ํ์ด๋ก๋) : ์ผ๋ จ์ ํด๋ ์์ ํฌํจํ๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก ํฌํจ๋๋ ํ์ค ํ๋์ธ 7๊ฐ์ ๋ฑ๋ก ํด๋ ์ ์ด๋ฆ์ ์ ์ํ๋ค.
Signature (์๋ช ) : ํ ํฐ์ ์์ ํ๊ฒ ํ์ธํ๋ค. ์๋ช ์ ํตํด ํ ํฐ์ด ๋ณ์กฐ๋์๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ ์ ์๋ค.
โ JWT ํ ํฐ ์ธ์ฆ ๊ณผ์ ์ ๊ตฌํํ๊ธฐ ์ํด์
JWT ๋ชจ๋์ ์ค์นํ๊ณ , API ์ฌ์ฉ์ ์ํด ํ ํฐ ๋ฐ๊ธ ํ ์ธ์ฆ ๊ณผ์ ์ด ๋ฐ๋ณต์ ์ผ๋ก ์ด๋ฃจ์ด์ง๊ธฐ์ ๋ฏธ๋ค์จ์ด๋ก ์ ์ํ๋ค.
GET ๋ผ์ฐํฐ๋ ์ฌ์ฉ์๊ฐ ๋ฐ๊ธ๋ฐ์ ํ ํฐ์ ํ ์คํธํ๋ ๋ผ์ฐํฐ์ด๋ค.
ํ ํฐ์ ๊ฒ์ฆํ๋ ๋ฏธ๋ค์จ์ด๋ฅผ ๊ฑฐ์น ํ, ๊ฒ์ฆ์ด ์ฑ๊ณตํ๋ค๋ฉด ํ ํฐ์ ๋ด์ฉ๋ฌผ์ ์๋ต์ผ๋ก ๋ณด๋ธ๋ค.
POST ๋ผ์ฐํฐ์์๋ ์ ๋ฌ๋ฐ์ ํด๋ผ์ด์ธํธ ๋น๋ฐํค๋ก ๋๋ฉ์ธ์ด ๋ฑ๋ก๋๋์ง ํ์ธํ๊ณ ํ ํฐ์ ๋ฐ๊ธํด์ ์๋ตํ๋ค.
ํ ํฐ์ ์๋ ์ฝ๋์ ๊ฐ์ด jwt.sign ๋ฉ์๋๋ก ๋ฐ๊ธ๋ฐ์ ์ ์๋ค.
โ jwt.sign ๋ฉ์๋๋ก ๋ฐ๊ธ๋ฐ๊ธฐ ์ํด์
์ ๊ณต๋๋ API๋ฅผ ์ฌ์ฉํ๋ ์๋น์ค, 2์ฐจ ์๋น์ค๋ NodeCat
API ์ฌ์ฉ์ ์ํด ์ฌ์ฉ์ ์ธ์ฆ์ด ๋๋์ง ํ ์คํธํ๋ ๋ผ์ฐํฐ ์ ์์ด ํ์ํจ
SNS ์๋น์ค ์ญ์ ๋ด๊ฐ ์ฌ๋ฆฐ ์๋น์ค๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋, ํด์ํ๊ทธ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ผ์ฐํฐ๋ฅผ ์ ์ํ์ฌ ์ฌ์ฉํจ
์ธ์ฆ๋ ์ฌ์ฉ์๋ผ ํด๋ ๊ณผ๋ํ๊ฒ API๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฒ์ ๋ฌด๋ฆฌ๊ฐ ๊ฐ๊ธฐ ๋๋ฌธ์ ์ผ์ ๊ธฐ๊ฐ ๋ด์ API๋ฅผ ์ฌ์ฉํ ์ ์๋ ํ์๋ฅผ ์ ํํ์ฌ ํธ๋ํฝ์ ์ค์ด๋ ๊ฒ์ด ์ข๋ค
๋ณ๊ฒฝ ํ, http://localhost:4000์ ์ ์ํ๋ฉด Access-Control-Allow-Origin์ด๋ผ๋ ํค๋๊ฐ ์๋ค๋ ๋ด์ฉ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
์ด๋ ๊ฒ ์๋ฒ์์ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ผ ๋์ ๋ฌ๋ฆฌ ๋ธ๋ผ์ฐ์ ์์ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ผ ๋๋ ๋ฌธ์ ๊ฐ ์๊ธด๋ค.
์ด๋ฐ ๋ฌธ์ ๋ฅผ CORS(Cross-Origin Resource Sharing) ๋ฌธ์ ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
CORS ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ์๋ต ํค๋์ Access-Control-Allow-Origin ํค๋๋ฅผ ๋ฃ์ด์ผ ํ๋ค.
res.set ๋ฉ์๋๋ก ์ง์ ๋ฃ์ ์๋ ์์ง๋ง npm์๋ cors๋ผ๋ ํจํค์ง๊ฐ ์ฒ๋ฆฌํด์ค๋ค.
NodeBird API ์๋ฒ์์ ์ค์นํ๋ค.
[Node.js] 12์ฅ ์น ์์ผ์ผ๋ก ์ค์๊ฐ ๋ฐ์ดํฐ ์ ์กํ๊ธฐ (0) | 2022.12.22 |
---|---|
[Node.js] 11์ฅ ๋ ธ๋ ์๋น์ค ํ ์คํธํ๊ธฐ (0) | 2022.12.01 |
[Node.js] 9์ฅ ์ต์คํ๋ ์ค๋ก SNS ์๋น์ค ๋ง๋ค๊ธฐ (0) | 2022.11.17 |
[Node.js] 8์ฅ ๋ชฝ๊ณ ๋๋น (0) | 2022.11.17 |
[Node.js] 7์ฅ MySQL (0) | 2022.11.10 |