코드가 복잡해지고 많아지면, api요청이 많아지면 매 코드 마다 라이브라리에 의존하게 된다.
상황이 바껴서 라이브러리를 바꿀때에는 하드코딩된 부분을 바꿔야 하게 되기 때문에 의존적인 코드를 최소화하자.
axios를 호출하는 코드를 별도로 만들어 주는 방법을 사용해 보자.
import axios from 'axios';
const DOMAIN = 'http://localhost:3000';
const UNAUTHORIZED = 401;
const onUnauthorized = () => {
router.push('/login')
}
const request = (method, url, data) => {
return axios({
method,
url: DOMAIN + url,
data
}).then(result => result.data)
.catch(result => {
const {status} = result.response
if(status === UNAUTHORIZED) return onUnauthorized()
throw Error(result)
})
}
export const board = {
fetch () {
return request ('get', '/board')
}
}
api.js
import { board } API from '../API'
export default {
data(){
return {
loading: false,
boards : '',
error : ''
}
},
created(){
this.fetchData();
},
methods:{
this.loading = true
board.fetch()
.then(data => {
this.boards = data
})
.finally ({
this.loading = false
})
}
}
VUE 예시 board.js
'API' 카테고리의 다른 글
인증 API (로그인 페이지 개발) (0) | 2021.05.10 |
---|---|
서버 라우팅과 브라우져 라우팅 (0) | 2021.05.08 |