@zcorky/fz
v1.2.15
Published
A simply fetch library
Downloads
1,869
Readme
fz
A simply http client lib base fetch
Install
$ npm install @zcorky/fz
Usage
// typescript
import fz from '@zcorky/fz';
(async () => {
const json = await fz.post('https://some-api.com', {json: {foo: true}}).json();
console.log(json);
//=> `{data: '🦄'}`
})();
API
fz.get(input, [options])
fz.post(input, [options])
fz.put(input, [options])
fz.patch(input, [options])
fz.head(input, [options])
fz.delete(input, [options])
Supported features
- url parameter is automatically serialized
- post data submission method is simplified
- response return processing simplification
- api timeout support
- api request cache support
- support for processing gbk
- request and response interceptor support like axios
- unified error handling
- middleware support
- cancel request support like axios
- make http request from node.js
Features
// When 400 BadRequest
Fz.onUnauthorized(async (response, options) => {
// Do Something
});
// When 401 Unauthorized
Fz.onUnauthorized(async (response, options) => {
// Do Something
});
// When 403 Forbidden
Fz.onForbidden(async (response, options) => {
// Do Something
});
// When 404 Not Found
Fz.onNotFound(async (response, options) => {
//
});
// When 405 Method Not Allowed
Fz.onMethodNotAllowed(async (response, options) => {
//
});
// When 429 Too Many Requests
Fz.onRateLimited(async (response, options) => {
//
});
// When 500 Internal Server Error
Fz.onInternalServerError(async (response, options) => {
//
});
// Apply Global Loading
Fz.enableShowLoading();
Fz.loading(
async start() {
XXUI.showLoading();
},
async end() {
XXUI.hideLoading();
},
);
fz vs umi-request vs fetch vs axios
| Features | fz | umi-request | fetch | axios | | :---------- | :---- | :-------------- | :-------------- | :-------------- | | implementation | Browser native support | Browser native support | Browser native support | XMLHttpRequest | | size | 3.4k | 9k | 4k (polyfill) | 14k | | query simplification | ✅ | ✅ | ❎ | ✅ | | params simplification | ✅ | ❎ | ❎ | ❎ | | post simplification | ✅ | ✅ | ❎ | ❎ | | timeout | ✅ | ✅ | ❎ | ✅ | | cache | ❎ | ✅ | ❎ | ❎ | | error Check | ✅ | ✅ | ❎ | ❎ | | error Handling | ❎ | ✅ | ❎ | ✅ | | interceptor | ✅ | ✅ | ❎ | ✅ | | prefix | ✅ | ✅ | ❎ | ❎ | | suffix | ✅ | ✅ | ❎ | ❎ | | processing gbk | ❎ | ✅ | ❎ | ❎ | | middleware | ✅ | ✅ | ❎ | ❎ | | cancel request | ❎ | ✅ | ❎ | ✅ |
For more discussion, refer to Traditional Ajax is dead, Fetch eternal life If you have good suggestions and needs, please mention issue
TODO Welcome pr
- [x] Test case coverage 85%+
- [x] write a document
- [x] CI integration
- [x] release configuration
- [x] typescript
Relatived
- ky - Tiny and elegant HTTP client based on the browser Fetch API
License
MIT © Moeover