๐ก 1. json-server๋?
jsonํ์ผ์ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ ์๋ฎฌ๋ ์ด์ ์ ์ํ REST API Mock server๋ฅผ ๊ตฌ์ถํ ์ ์๋ ํด์ ๋๋ค.
๐ก 2. json-server ์ค์นํ๊ธฐ.
๐ฃ 2.1 module ์ค์นํ๊ธฐ.
$ mkdir json-server-exam && cd json-server-exam
$ npm init -y
$ npm install json-server --save-dev
๐ฃ 2.2 mock.json ํ์ผ ์์ฑํ๊ธฐ.
์์์ ๋ง๋ ํ๋ก์ ํธ root ๊ฒฝ๋ก(package.json๊ณผ ๋์ผํ ์์น)์ mock.json(์ด๋ฆ์ ์๊ธฐ์ํ๋ ๋๋ก) ๋ง๋ญ๋๋ค.
// mock.json
{
"todos": [
{
"id": 1,
"content": "HTML",
"completed": true
},
{
"id": 2,
"content": "React",
"completed": false
},
{
"id": 3,
"content": "JAVA",
"completed": true
}
],
"users": [
{
"id": 1,
"name": "Lee",
"role": "developer"
},
{
"id": 2,
"name": "Kim",
"role": "designer"
}
]
}
๐ก 3. json-server ์คํํ๊ธฐ.
// package.json
...
"scripts": {
"start": "json-server --watch mock.json -p 3009"
},
...
json-server๊ฐ ์คํํ๋ฉด, mock.jsonํ์ผ์ ๋ฐ๋ผ๋ณด๊ฒ ํ๋ฉด์, 3009๋ฒ ํฌํธ๋ก ์คํํ๊ฒ ํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
3009๋ฒ ํฌํธ๋ฅผ ์์๋ก ์ค์ ํด์ค ์ด์ ๋, ์ ๋ next.js(port:3000)์์ json-server๋ฅผ ํธ์ถํ๊ธฐ ์ํด์ ์ ๋๋ค.
// npm
npm run start
// yarn
yarn start
๋ ์ค ์ฌ์ฉํ์๋ ๊ฑธ๋ก ์คํํด์ค๋๋ค.
๐ก 3. json-server ํ ์คํธํด๋ณด๊ธฐ.
๐ฃ 3.1 postman์ ์ด์ฉํ์ฌ ํ ์คํธํด๋ณด๊ธฐ.
๐ฃ 3.2 next.js์์ ํธ์ถํ๊ธฐ.
// server๋ฅผ ๋ถ๋ฅด๊ณ ์ถ์ ํ์ผ
axios.defaults.baseURL = "http://localhost:3009";
const getList = async() => {
try{
const response = await axios.get("/todos");
console.log(response)
}catch(e){
console.log(e)
}
}
๐ ์ ๋ฆฌ
- server ๊ตฌ์ถ ์์ด client์์ ๋น ๋ฅด๊ฒ api ํ ์คํธํ ๋ ์ฌ์ฉํ๋ฉด ์ข๋ค.
- ์๋ก์ด ํด๋์ npm install json-server --save-dev
- mock.json ํ์ผ ์์ฑ
- package.json ํ์ผ์ "start": "json-server --watch mock.json -p 3009" ์ถ๊ฐ
๊ธด ๊ธ ์ฝ์ด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค :)
ํ๋ฆฐ ๋ด์ฉ์ด ์๊ฑฐ๋, ๋ง๋ถ์ผ ๋ด์ฉ์ด ์๋ค๋ฉด ์ธ์ ๋ ์ง ๋๊ธ ๋ฌ์์ฃผ์ธ์!
์ ๊ธ์ด ์กฐ๊ธ์ด๋๋ง ์ฝ์ผ์ ๋ถ๋ค์๊ฒ ๋์์ด ๋๋๋ก ๋
ธ๋ ฅํ๊ฒ ์ต๋๋ค
๋ค์ ํธ์ ๋ดฌ์~
'Back-End' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JSON-SERVER] mac์์ json-server Forbidden error (0) | 2023.10.11 |
---|