0.1.7 • Published 3 years ago

bsy-domain-request v0.1.7

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

安装方法

npm install bsy-domain-request --save

域名配置流程-配置规范:

domain.js中配置映射关系及暴露一个方法

host:为环境匹配(正则表达式) domains: 为环境下不同域名的映射关系

默认的环境设置规范:(全平台默认测试环境为必填,如果没有或设置为空,报错并提示) host:固定为/default-environment/ default:为全局默认的测试域名

domains: 为环境下不同域名的映射关系

import { getBsyDomain } from 'bsy-domain-request'

// 配置域名
// 只需在指定环境下新增域名以及域名的标识

// Demo
const domains = [
  {
    host: /localhost/,
    domains: {
      default: 'https://xxx1', // default默认必须设置
      wl: "http://xxx2",
      zd: "https://xxx3",
    }
  },
  {
    host: /default-environment/, // 如果域名不匹配,就为全局的默认测试域名
    default: 'https://xxx',
  }
];

export const getDomain = getBsyDomain(domains)

请求配置流程-配置规范:

例子:

import { notification } from 'antd'
import { requestConfiguration } from "@/utils/bsyRequest"

/* 
  请求配置管理
*/

// Demo  曹操这个测试的请求配置,如果不设置自定义错误处理,默认错误处理提示会现实在控制台
export const caocaoFetch = requestConfiguration({
  setActions: { // 设置错误操作处理
    // 判断正确条件,第一个参数为response完整返回值,默认根据status判断是否为200,最后需要返回true或false
    // 当接口路径出错时,返回的response为undefined
    handleJudgement: (response) => {
      return response?.status === 200 // 判断当状态为200时正确
    },
    // 错误处理,第一个参数为错误返回的response,可以根据response中的某个值进行报错提示
    handleError: (response) => {
      notification.error({
        message: '自定义错误内容'
      })
    },
  },
  setOptions: { // 设置配置项
    timeout: 2000,
  },
  setHeaders: { // 设置请求头信息
    'Content-Type':'application/json',
    // Authorization: '', // 权限令牌自定义,如果没传则默认不需要令牌
    // http的一系列头信息
  }
})

参数:

// 请求配置参数
{
    setAction: { // 设置错误操作处理
        handleJudgement, // 函数,判断条件
        handleError // 函数,判断失败的话应该返回什么信息
    },
    setOptions: { // axios.create()中的参数
        timeout: 1000, // 不填写默认为1000ms
        // 其余配置可根据需要查看
    },
    setHeaders: { // 设置请求头信息,没有默认
 
 
    }
}

在api文件中调用配置过的请求caocaoFetch 和 getDomain,通过映射标识找到对应的域名,如果不设置映射标识则默认对应default标识

import { getDomain } from '@/config/domain'
import { caocaoFetch } from "bsy-domain-request"


// Demo 配置caocao  接口
async function getPredictionList(params = { search_key: '', operator: '' }) {
  return await caocaoFetch.post(`${getDomain()}/prediction/list`, params)
}

export {
  getPredictionList
}
0.1.7

3 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.1.4

4 years ago

0.1.2

4 years ago

0.1.3

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago