0.3.5 • Published 4 years ago

@txdfe/at-exceed v0.3.5

Weekly downloads
-
License
ISC
Repository
gitlab
Last release
4 years ago
  • 用法
    import Exceed from '@alife/at-exceed';
    const apimap = [
      {
        id: 'memberSearch',
        url: '/api/members/search',
        method: 'get',
        timeout: 2000, // 设置接口超时时间
      },
    ];

// 对apimap做一次封装,最简只需定义id和url字段 function apimapCreator(apimapArr) { // 在这里可以对请求做一些统一处理,如加前缀、加headers return apimapArr.map(option => Object.assign(option, { name: option.name || option.id, id: option.id, method: option.method || 'get', contentType: option.type || 'application/x-www-form-urlencoded', urls: { local: ${window.UILessConfig.host}${option.url}, }, timeout: option.timeout || 3000, // 设置接口超时时间 })); }

const exceed = new Exceed({ ENV: 'local', timeout: 3000, // 设置默认超时时间 }); exceed.use(apimapCreator(apimap));

exceed.interceptors.request.use((config) => { if (config && config.headers) { config.headers'x-requested-with' = 'XMLHttpRequest'; config.headers'Authorization' = Bearer ${window.UILessConfig.accessToken}; config.headers'X-Tenant-Id' = ${window.UILessConfig.orgId}; config.headers'X-app-id' = ${window.UILessConfig.appId}; } return config; }, (error) => { return Promise.reject(error); });

exceed.interceptors.response.use( (response) => { response.status = parseInt(response.headers'x-http-status' || response.status); const code = parseInt(response.data.code); if (code > 300 || code < 200) { return Promise.reject(response); } return Promise.resolve(response); }, (error) => { return Promise.reject(error); }, );

export default exceed;

import exceed from 'utils/api';


exceed.fetch({
  api: 'memberSearch',
  data: {
    q,
  }
}).then(res => {
  console.log(res)
})
**注意**

如果`method`为`post`且`contentType`为`'application/x-www-form-urlencoded'`,可通过`qsOtions`设置stringify参数的选项.

```js
const apimap = [
  {
    id: 'memberSearch',
    url: '/api/members/search',
    method: 'post',
    contentType: 'application/x-www-form-urlencoded',
    qsOptions: {
      allowDots: true,
    },
  },
];