请求
整个工作台的请求封装成了比较统一的方式,调用方式也比较简单,基本和ajax一致,具体可查看/src/js/utils/ajax.js
。
API对象
目前每个API抽象成了一个对象,包含以下信息:
- url 接口地址
- type 请求方式(GET/POST/...)
- errors 错误提示信息
其中URL地址一般都是组合出来的,由host和path组成,host会根据运行环境不同而不同。
API列表中的描述形如以下示例:
/src/config/api/activity.js
export default function (host, nodeHost) {
return {
// 敏感词判断
checkSensitive: {
url: `${host}/workspace/webAjax/isSensitive`,
type: 'POST',
errors: {
'-1': '服务器异常',
'-2': '参数错误'
}
}
}
}
错误处理
错误处理的代码:/src/js/utils/handler.js
。
目前默认是会使用message进行提示,提示内容为错误信息 + 服务端返回码。
额外说明:
- 返回码为99时,将统一提示
您的账号已经注销登录,请重新登录
,并在2s后跳转登录界面。 - 返回码为-90时,将统一提示
无权限操作
,并在2s后跳转登录界面。 - 如果服务端返回的code在errors中查找不到,将会提示
服务器或操作数据库异常
,该文案在/src/config/index.js
中能查找到,key为defaultRequestErrorReason
。 - 如果希望自定义一些提示操作,可以将对应的错误信息提示写为
null
即可,例如:errors: {'-3': null}
。这样当服务端返回-3时将不会进行提示,你可以自定义一些文案进行提示。
如何调用
继续看上面的示例,Store中的action是这样的:
/src/js/store/actions/activity.js
import ajax from '../../utils/ajax';
export default {
// 检查是否包含敏感词
checkSensitive(store, data) {
return ajax({
action: 'checkSensitive',
params: {
game_id: store.state.gameId,
content: data.content
}
});
}
}
传入的action对应好API对象的key即可。