如何定义接口及请求数据

一、如何写接口

1.首先先建立本地json文件,然后在config.js和server-config.js里面配置接口,config.js里面就是定义名称和json的位置,server-config.js里是线上的地址,建立好之后在需要的模块建立request文件夹,创建一个request.js文件。request就是请求数据的,代码如下:

/**

*@file request

*@version 1.0.1

*@author wuwg

*@createTime 2019/12/09 - 11:03

*@updateTime 2019/12/09 - 11:03

*@see [jsDoc中文文档]{@link  http://www.dba.cn/book/jsdoc/JSDOCKuaiBiaoQianBLOCKTAGS/CONSTRUCTS.html}

@description  阅卷目录request (请求)相关

@namespace  request  请求相关,后面加模块名

名字解释:

_name : 用 【模块名】 => 【子模块名】

_method : 请求的方法

_showLog:  是否显示日志

_url : 请求的url

_data : 请求所需要的数据, 需要的参数名,全部在这里写好, 可以通过传参给对象赋值!

_serverData : 服务器返回的数据

请求:

1. fd工程结构中自带此全局方法

window.fdGlobal.ajax

2.可以单独使用

axios

请求必须输出日志:

1. 请求日志

window.fdGlobal.consoleLogRequest(_showLog, _name, _method, _url, _data);

2. 响应日志

window.fdGlobal.consoleLogResponse(_showLog, _name, _serverData);

!important

请求函数返回一个promise,

为了性能需要,咱们需要内置性能日志!

按照以下结构编写即可!

以下是一个实际案例, 【请求模块】可以通过混入的方式,引入到组件的index.js 中

request :为命名空间

TreeData:  为模块名

showLog : 在组件的 index.js  的data中写好,  如:{showLog: window.fdConfig.showLog}, 全局控制日志!

*/

export default {

methods: {

// 请求各区城市生活服务复工情况

        requestCsshData(queryData) {

// 设置开始时间

            const _startTime =window.fdGlobal.performance.getCurrentTime();

            return new Promise((resolve, reject) => {

const _showLog =this.showLog;

                const _name ='请求各区城市生活服务复工情况';

                const _method =window.fdConfig.methodGet;

                const _url =window.fdConfig.url.qyfx.gqcsshfgqk;

                const time = {time:_startTime};

                const _data =Object.assign(queryData, time);

                // 输出日志

                window.fdGlobal.consoleLogRequest(_showLog, _name, _method, _url, _data);

                //  返回shuju

                window.fdGlobal.ajax({

method: _method,

                    url: _url,

                    // URL参数

                    // 必须是一个纯对象或者 URL参数对象

                    params: _data,

                    // 默认值是json

                    responseType:'json'

                }).then((data) => {

const _serverData = data.data;

                    window.fdGlobal.performance.execute(`${_name}ajax 结束时间,拿到数据的时间 :`, _startTime);

                    // 后端输出日志

                    window.fdGlobal.consoleLogResponse(_showLog, _name, _serverData);

                    resolve(_serverData.data);

                }, (data) => {

window.fdGlobal.performance.execute(`${_name}ajax 结束时间,拿到数据报错 :`, _startTime);

                    const _serverData = data.data;

                    // 后端输出日志

                    window.fdGlobal.consoleLogResponse(_showLog, _name, _serverData);

                    reject(data);

                });

            });

        }

}

};

如果有参数的话,一定不要忘记写 const _data =Object.assign(queryData, time); !!!

然后在模块的index.js里引入request文件,并且混入,然后创建请求

created() {

    this.requestCsshData(this.queryDataCssh).then(this.success, this.error);

},

queryDataCssh在data里定义一个,用来传参数,然后写两个方法,一个success,一个error

success里用来获取数据

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。