3.REST API ๊ตฌ์ถํ๊ธฐ
node.js express ๋ฅผ ์ค์นํ์ฌ REST API๋ฅผ ๊ตฌ์ถํด๋ณด์๋ค.
REST API๋ ์ต๊ทผ ์๋น์์ ์น ์๋ฒ ํ๋ ์์ํฌ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์ํ๋ ๊ธฐ๋ฅ์ผ๋ก ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ์น ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ ํจ๊ณผ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ํด์ค๋ค. ์ ๋ฒ ๊ฐ์์ ์ด์ด์ ์ ์ฒด ๊ณ ๊ฐ ๋ชฉ๋ก์ ๋ถ๋ฌ์ค๋ API๋ฅผ ๊ตฌํํด๋ณด์๋ค.
ํฐ๋ฏธ๋์ ๊ฐ๊ฐ npm run server ์ npm run client๋ฅผ ์ ๋ ฅํ๋ฉด ๊ฐ๊ฐ์ ํฌํธ๊ฐ ์ด๋ฆฌ๋๋ก ์๋ฒ์ ๋ง๋ package.json์ scripts์ ์์ฑํด๋์๋ค.
์๋ฒ <-> ํด๋ผ์ด์ธํธ
5000๋ฒ ํฌํธ 3000๋ฒ ํฌํธ
package.json package.json
server.js app.js
ํด๋ผ์ด์ธํธ์ package.json ์ "proxy": "http://localhost:5000/" ๋ฅผ ๋ฃ์ด์ ํด๋น ํฌํธ๋ฅผ API ์๋ฒ๋ก ์ด์ฉํ๋๋ก ํด์ฃผ์๋ค.
/api/customers ๊ฒฝ๋ก๋ก ๋ค์ด๊ฐ๋ฉด 3๋ช ์ ๋ฐ์ดํฐ๊ฐ jsonํํ๋ก ์ถ๋ ฅ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
๋ฆฌ์กํธ๋ ๋น๋๊ธฐ ํต์ ์ผ๋ก ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ๋ค. ๋น๋๊ธฐ ํต์ ์ด๊ธฐ ๋๋ฌธ์ ์ผํญ์ฐ์ฐ์๋ฅผ ํตํด customers ๋ณ์์ ๊ฐ์ด ๋ค์ด์์ ๋๋ง ๊ฐ ๊ณ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ ์ ์๋๋ก ํ๋ค.
API ์๋ฒ์ ์ ๊ทผํด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฉ์๋๋ componentDidMount()๋ฅผ ์ฌ์ฉํ๋ค. ๋ชจ๋ ์ปดํฌ๋ํธ๊ฐ ๋ง์ด๋๊ฐ ์๋ฃ๋์์ ๋ ์คํ๋๋ค. ๋ฐ์์จ json ๋ฐ์ดํฐ๋ฅผ state๋ณ์ customers์ ๋ฃ์ด์ค๋ค.
์ฐธ๊ณ : https://ndb796.tistory.com/218 [์๊ฒฝ์ก์ด๊ฐ๋ฐ์]