请求

整个工作台的请求封装成了比较统一的方式,调用方式也比较简单,基本和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即可。

results matching ""

    No results matching ""