프론트엔드/백엔드 동시 개발을 위해 API를 확정지었더라도, 백엔드가 API 개발을 마쳐야만 프론트엔드가 실제 API를 바탕으로 화면을 만들 수 있다는 단점이 있습니다.
이를 극복하기 위해, 현업에서도 많이 사용하는 Mock API 기법을 소개합니다.
postman 활용, 서버리스 개발 등 많은 방법이 있지만 오늘 저희는 react의 public folder와 .josn 파일을 사용 해 보겠습니다.
[
{
"userId": "hoholily",
"comment": "Mock Data 뿌셔뿌셔🔥🔥🔥"
},
{
"userId": "wewe",
"comment": "포스트 정보? 오오오!🏝🏝🏝🏝"
},
{
"userId": "dana",
"comment": "오오오 들어온다 나의 소중한 데이터~~👀"
}
]
fetch("http://localhost:3000/getTestData.json", {
method: "GET",
})
.then((res) => res.json())
.then((data) => {
console.log(data.result)
});
fetch("http://localhost:3000/api/posts.json", {
method: "GET",
})
.then((res) => res.json())
.then((data) => {
/**
* 선택 가능한 작업
* 1. setPosts(data.result)
* 2. dispatch(setPostList(data.result))
* etc...
*/
console.log(data.result);
});
}
http://localhost:3000/api/posts.json —> http://myBackend/api/posts
[http://myBackend](http://localhost:3000/api/posts.json)/auth/login
과같은 restApi를 만들었다고 하네요.
public/auth/login.json
{
"ok": true,
"result": {
"user": {
"token": "aivijajinewjidjads",
"name": "김항해"
}
}
}
이제 컴포넌트에서 로그인 요청 핸들러를 만들어 볼까요?
로그인 함수
const login = () => {
if ((username, password)) {
fetch("http://localhost:3000/auth/login.json", {
method: "GET", // 실제 서버 요청은 POST 요청이겠죠?
})
.then((res) => res.json())
.then((data) => {
if(data.result.ok){
/**
* 선택 가능한 작업
* 1. localStorage.setItem("token", data.result.user.token)
* 2. dispatch(setPostList(data))
* etc...
*/
}
console.log(data.result);
});
}
};