一圈浇、如何寫接口
1.首先先建立本地json文件寥掐,然后在config.js和server-config.js里面配置接口,config.js里面就是定義名稱和json的位置磷蜀,server-config.js里是線上的地址召耘,建立好之后在需要的模塊建立request文件夾,創(chuàng)建一個(gè)request.js文件蠕搜。request就是請求數(shù)據(jù)的怎茫,代碼如下:
/**
*@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 (請求)相關(guān)
@namespace? request? 請求相關(guān),后面加模塊名
名字解釋:
_name : 用 【模塊名】 => 【子模塊名】
_method : 請求的方法
_showLog:? 是否顯示日志
_url : 請求的url
_data : 請求所需要的數(shù)據(jù), 需要的參數(shù)名轨蛤,全部在這里寫好蜜宪, 可以通過傳參給對象賦值!
_serverData : 服務(wù)器返回的數(shù)據(jù)
請求:
1. fd工程結(jié)構(gòu)中自帶此全局方法
window.fdGlobal.ajax
2.可以單獨(dú)使用
axios
請求必須輸出日志:
1. 請求日志
window.fdGlobal.consoleLogRequest(_showLog, _name, _method, _url, _data);
2. 響應(yīng)日志
window.fdGlobal.consoleLogResponse(_showLog, _name, _serverData);
祥山!important
請求函數(shù)返回一個(gè)promise,
為了性能需要圃验,咱們需要內(nèi)置性能日志!
按照以下結(jié)構(gòu)編寫即可缝呕!
以下是一個(gè)實(shí)際案例澳窑, 【請求模塊】可以通過混入的方式,引入到組件的index.js 中
request :為命名空間
TreeData:? 為模塊名
showLog : 在組件的 index.js? 的data中寫好供常,? 如:{showLog: window.fdConfig.showLog}, 全局控制日志摊聋!
*/
export default {
methods: {
// 請求各區(qū)城市生活服務(wù)復(fù)工情況
? ? ? ? requestCsshData(queryData) {
// 設(shè)置開始時(shí)間
? ? ? ? ? ? const _startTime =window.fdGlobal.performance.getCurrentTime();
? ? ? ? ? ? return new Promise((resolve, reject) => {
const _showLog =this.showLog;
? ? ? ? ? ? ? ? const _name ='請求各區(qū)城市生活服務(wù)復(fù)工情況';
? ? ? ? ? ? ? ? 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參數(shù)
? ? ? ? ? ? ? ? ? ? // 必須是一個(gè)純對象或者 URL參數(shù)對象
? ? ? ? ? ? ? ? ? ? params: _data,
? ? ? ? ? ? ? ? ? ? // 默認(rèn)值是json
? ? ? ? ? ? ? ? ? ? responseType:'json'
? ? ? ? ? ? ? ? }).then((data) => {
const _serverData = data.data;
? ? ? ? ? ? ? ? ? ? window.fdGlobal.performance.execute(`${_name}ajax 結(jié)束時(shí)間,拿到數(shù)據(jù)的時(shí)間 :`, _startTime);
? ? ? ? ? ? ? ? ? ? // 后端輸出日志
? ? ? ? ? ? ? ? ? ? window.fdGlobal.consoleLogResponse(_showLog, _name, _serverData);
? ? ? ? ? ? ? ? ? ? resolve(_serverData.data);
? ? ? ? ? ? ? ? }, (data) => {
window.fdGlobal.performance.execute(`${_name}ajax 結(jié)束時(shí)間栈暇,拿到數(shù)據(jù)報(bào)錯(cuò) :`, _startTime);
? ? ? ? ? ? ? ? ? ? const _serverData = data.data;
? ? ? ? ? ? ? ? ? ? // 后端輸出日志
? ? ? ? ? ? ? ? ? ? window.fdGlobal.consoleLogResponse(_showLog, _name, _serverData);
? ? ? ? ? ? ? ? ? ? reject(data);
? ? ? ? ? ? ? ? });
? ? ? ? ? ? });
? ? ? ? }
}
};
如果有參數(shù)的話麻裁,一定不要忘記寫?const _data =Object.assign(queryData, time); !T雌怼煎源!
然后在模塊的index.js里引入request文件,并且混入香缺,然后創(chuàng)建請求
created() {
? ? this.requestCsshData(this.queryDataCssh).then(this.success, this.error);
},
queryDataCssh在data里定義一個(gè)手销,用來傳參數(shù),然后寫兩個(gè)方法图张,一個(gè)success锋拖,一個(gè)error
success里用來獲取數(shù)據(jù)