za-fetch-api

2.7.2 • Public • Published

fetch-api

安装

  npm install PackageName

使用

  import fetchAPI, { setServices } from 'PackageName';
 
  const api = {
    native: {
      host: '',
    },
  };
  
  // 内置服务配置
  setServices(api);
  
  // fetch请求
  fetchAPI
    .fetch({
      url: 'your request url',
      method: 'GET',
      data: {
        key: 'the value',
      },
    })
    .then(...);
 
  // fetch请求超时
  fetchAPI
    .fetch({
      url: 'your request url',
      method: 'GET',
      data: {
        key: 'the value',
      },
      timeout: 5000,
    })
    .then(...);
 
  fetchAPI
    .timeout({
      url: 'your request url',
      method: 'GET',
      data: {
        key: 'the value',
      },
    }, 5000)
    .then(...);
 
  // get、post请求
  fetchAPI
    .get('your request url', { key: 'your query value'})
    .then(...);
 
  fetchAPI
    .get({
      url: 'your request url',
      data: {
        key: 'your query value',
      },
    })
    .then(...);
  
  // 表单提交
  const fd = new FormDate();
  
  fetchAPI
    .form('your request url', fd)
    .then(...)

封装小技巧

  import { FetchAPI } from 'za-fetch-api';

  const myFetchAPI = new FetchAPI();
  const originFetch = myFetchAPI.fetch;

  myFetchAPI.fetch = (config) => {
    config.url = `${config.url}?&channel=app`;

    return originFetch.call(myFetchAPI, config);
  }

  myFetchAPI.fetch = function wrapFetch(config) {
    const { headers } = config;
    const { url, options } = this.getFetchConfig(config);

    return fetchSign(url, options).then(sign => originFetch.call(fetchAPI, { ...config, headers: { ...headers, ...sign } }));
  };

接口

  • 默认fetchAPI实例
    import fetchAPI from 'PackageName'
    import { fetchAPI } from 'PackageName'

    • fetchAPI.setCheckStatus
    • fetchAPI.setParseResponse
    • fetchAPI.setRetrieveCache
    • fetchAPI.setCreateCache
    • fetchAPI.setMiddlewares
    • fetchAPI.setBefore
    • fetchAPI.setAfter
    • fetchAPI.fetch
    • fetchAPI.timeout
    • fetchAPI.get
    • fetchAPI.post
    • fetchAPI.form
  • 内置服务配置 setServices
    import { setServices } from 'PackageName'

  • 内置服务地址 getURL
    import { getURL } from 'PackageName'

  • 类 FetchAPI
    import { FetchAPI } from 'PackageName'

      const fetchAPI = new FetchAPI({
        middlewares,  // 请求结果处理中间件,如统一错误处理、未登录提示等
        before,      // 请求前置回调,如开启loading效果
        after,     // 请求后置回调,如关闭loading效果
      });

Readme

Keywords

none

Package Sidebar

Install

npm i za-fetch-api

Weekly Downloads

2

Version

2.7.2

License

MIT OR ZA

Unpacked Size

33.6 kB

Total Files

4

Last publish

Collaborators

  • linqun