0.1.7 • Published 3 years ago
bsy-domain-request v0.1.7
安装方法
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
}