返回 封装
如何封装
如何使用封装后的
为啥在typescript项目中需要封装fetch
前端
2023-09-17 15:02:50
前言
在现代的前端项目中,我们经常需要发送HTTP请求来获取数据。为了方便我们发送请求,fetch
API 应运而生。fetch
API 是一个标准的浏览器 API,它允许我们以更简单的方式发送HTTP请求。然而,fetch
API 的功能有限,我们经常需要对它进行封装,以满足我们项目的需要。
封装fetch
函数的好处
封装fetch
函数有很多好处,其中包括:
- 添加api前缀: 我们可以将api前缀添加到
fetch
函数中,这样我们就不需要在每次请求中都手动添加api前缀了。 - 添加鉴权token数据: 我们可以将鉴权token数据添加到
fetch
函数中,这样我们就不需要在每次请求中都手动添加鉴权token数据了。 - 全局对request,response数据进行处理: 我们可以对请求和响应数据进行全局处理,例如,我们可以将请求数据转换为JSON格式,将响应数据解析为JSON格式。
- 使用中间件: 我们可以使用中间件来对
fetch
函数进行扩展。中间件可以用来做很多事情,例如,我们可以使用中间件来记录请求和响应数据,我们可以使用中间件来做缓存,我们可以使用中间件来做权限控制。
如何封装fetch
函数
封装fetch
函数有很多种方法,我们可以根据自己的需要选择一种方法。以下是一种封装fetch
函数的方法:
//创建一个fetch函数
const fetch = (input: RequestInfo, init?: RequestInit): Promise<Response> => {
//添加api前缀
if (typeof input === 'string') {
input = apiPrefix + input;
}
//添加鉴权token数据
if (token) {
if (!init) {
init = {};
}
init.headers = {
...init.headers,
Authorization: `Bearer ${token}`
};
}
//全局对request,response数据进行处理
return fetch(input, init)
.then(response => {
return response.json();
});
};
我们也可以使用第三方库来封装fetch
函数,例如,我们可以使用axios
库来封装fetch
函数。
如何使用封装后的fetch
函数
使用封装后的fetch
函数非常简单,我们只需要在原来的代码中将fetch
函数替换为封装后的fetch
函数即可。例如,以下代码演示了如何使用封装后的fetch
函数:
//发送一个GET请求
fetch('api/users')
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});
//发送一个POST请求
fetch('api/users', {
method: 'POST',
body: JSON.stringify({
name: 'John Doe',
email: 'john.doe@example.com'
})
})
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});
总结
封装fetch
函数有很多好处,我们可以使用封装后的fetch
函数来简化我们的代码,提高我们的开发效率。使用封装后的fetch
函数也很简单,我们只需要在原来的代码中将fetch
函数替换为封装后的fetch
函数即可。