Skip to content
This repository was archived by the owner on May 12, 2020. It is now read-only.

Commit 7c8099c

Browse files
committed
feat(api): api module implementation
1 parent c6b3825 commit 7c8099c

7 files changed

Lines changed: 62 additions & 2 deletions

File tree

babel.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ module.exports = {
1111
}
1212
]
1313
]
14-
}
14+
}

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"lint": "vue-cli-service lint"
99
},
1010
"dependencies": {
11+
"axios": "^0.18.0",
1112
"element-ui": "^2.4.5",
1213
"normalize.css": "^8.0.1",
1314
"nprogress": "^0.2.0",

src/api/index.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import request from 'UTILS/request'
2+
import routes from './routes'
3+
4+
export function userLogin ({
5+
username,
6+
password
7+
}) {
8+
return request.post(routes.LOGIN, {
9+
username,
10+
password
11+
})
12+
}

src/api/routes.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export default {
2+
LOGIN: '/login'
3+
}

src/utils/request.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import axios from 'axios'
2+
3+
const request = axios.create({
4+
// Env variables is defined by .env.[mode] files.
5+
baseURL: process.env.VUE_APP_BASE_REQUEST,
6+
timeout: 10000
7+
})
8+
9+
request.interceptors.request.use(req => {
10+
req.headers['content-type'] = 'application/json'
11+
12+
return req
13+
}, err => {
14+
err && console.error(`[Request error]: ${err}`)
15+
return Promise.reject(err)
16+
})
17+
18+
request.interceptors.response.use(({ data }) => {
19+
if (data.code !== 2000) {
20+
throw new Error(
21+
`[Fetch err]: ${data.code}, ${data.msg}`
22+
)
23+
}
24+
return data
25+
}, err => {
26+
err && console.error(`[Response error]: ${err}`)
27+
return Promise.reject(err)
28+
})
29+
30+
export default request

vue.config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ module.exports = {
1212
'STYLE': path.resolve(PATH.SOURCE_PATH, './style'),
1313
'STATIC': PATH.STATIC_PATH,
1414
'ROUTER': path.resolve(PATH.SOURCE_PATH, './router'),
15-
'UTILS': path.resolve(PATH.SOURCE_PATH, './utils')
15+
'UTILS': path.resolve(PATH.SOURCE_PATH, './utils'),
16+
'API': path.resolve(PATH.SOURCE_PATH, './api')
1617
}
1718
}
1819
}

yarn.lock

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1167,6 +1167,13 @@ aws4@^1.8.0:
11671167
version "1.8.0"
11681168
resolved "http://registry.npm.taobao.org/aws4/download/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
11691169

1170+
axios@^0.18.0:
1171+
version "0.18.0"
1172+
resolved "http://registry.npm.taobao.org/axios/download/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102"
1173+
dependencies:
1174+
follow-redirects "^1.3.0"
1175+
is-buffer "^1.1.5"
1176+
11701177
babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
11711178
version "6.26.0"
11721179
resolved "http://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
@@ -3103,6 +3110,12 @@ follow-redirects@^1.0.0:
31033110
dependencies:
31043111
debug "=3.1.0"
31053112

3113+
follow-redirects@^1.3.0:
3114+
version "1.5.10"
3115+
resolved "http://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a"
3116+
dependencies:
3117+
debug "=3.1.0"
3118+
31063119
for-in@^0.1.3:
31073120
version "0.1.8"
31083121
resolved "http://registry.npm.taobao.org/for-in/download/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1"

0 commit comments

Comments
 (0)