손쉽게 API 호출을 모의(스텁)화하고 싶었다
이 기사에 대하여
(주) 모의인가 스텁인가, 라고 하는 점에서는, 스텁이겠지만, axios-mock-adapter 가 모의라는 이름을 사용하고 있기 때문에 아래와 같은 모의로 통합니다.
개발시 외부의 API 호출을 모의화하고 응답을 손쉽게 지정하는 방법은 어떻게 하는 것이 좋을까, 라고 생각하고 있어 조금 구그였지만, 모의 서버 세우는 방법은 그다지 간편하지 않구나, 라고 생각했고 axios-mock-adapter 는 좋지만, 일률 전혀 모형화 되어 버리는 것도 그렇구나, 라고 생각했기 때문에, 도착한 것이 이하의 방법입니다.
더 쉬운 방법이 있다는 분이 있으면 꼭 알려주세요.
개요
axios 호출은 API 호출을 래핑한 객체에 갇히고 webpack resolve.alias에서 디렉토리별로 전환하는 방법입니다.
webpack.config.js
const path = require('path');
const apiRoot = (process.env.NODE_ENV === 'development')
? 'apiMock'
: 'api'
;
module.exports = {
resolve: {
alias: {
'api': path.resolve(__dirname, apiRoot),
}
}
}
USE_MOCK=true
같은 환경 변수를 별도 준비해도 좋을지도 모릅니다.클라이언트
import api from 'api'
api.getHoge()
.then(res) => {
//
}
api/index.js
import axios from 'axios'
const api = {
getHoge () {
return axios('/hoge')
}
}
export default api
apiMock/index.js
const promisify = (response) => {
return new Promise((resolve) => {
resolve(response)
})
}
const api = {
getHoge () {
return promisify({
status: 200,
data: [...], // data は外部の json ファイルから読んできてもいい
})
}
export default api
장점
단점
결론
앞서 언급했듯이, 더 쉬운 방법이 있으면 가르쳐 주셨으면 하는 것과 메리트/단점, 그 밖에도 이런 것이 있는 것은 아닐까? 그렇다면, 지적하십시오.
Reference
이 문제에 관하여(손쉽게 API 호출을 모의(스텁)화하고 싶었다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nunulk/items/886c2d8f7bc5f96355c3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)