1.1.4 • Published 1 year ago
@huolala-tech/request v1.1.4
request ·

This is just a request library to support browsers and MiniProgram platforms.
Include
yarn add @huolala-tech/requestor
npm install @huolala-tech/request --saveParams
| name | type | description |
|---|---|---|
| method (required) | string | Request method |
| url (required) | string | Request URL |
| data | any | Request payload (or query string for GET/HEAD methods) |
| timeout | number | Request timeout in milliseconds |
| headers | Record\<string, string> | Request header |
| files | Record\<string, Blob | File | string> | Payload files |
| responseType | text | json | arraybuffer | blob | document | Response type |
| withCredentials | boolean | The withCredentials flag for XHR object |
| signal | AbortSignal | An abort signal like fetch |
| onUploadProgress | (info: { total: number, loaded: number }) => void | The uploading progress event |
NOTE 1: The
methodfield
- Some MiniProgram platforms can only support
"GET"or"POST"methods, so using a RESTful API is not the best solution for MiniPrograms.NOTE 2: The
filesfield
- In browsers, the file is represented as a Blob or File object, whereas in other MiniProgram platforms, the file is represented as a string filePath.
- MiniProgram platforms doese not suport multiple files uploading in once.
NOTE 3: The
responseTypefield
- The values of
blobanddocumentcan only be used on browser.- The
responseTypecan not be used withfileson MiniProgram platforms.NOTE 4: The
withCredentialsfield
- This can only be used on browser.
Return Promise<InvokeResult>
The InvokeResult is
| name | type | description |
|---|---|---|
| statusCode | number | Response status code |
| data | any | Response body |
| headers | Record<string, string> | Response headers |
Demo
import { request } from '@huolala-tech/request';
async function main() {
const res = await request({
method: 'POST',
url: 'http://localhost/api',
data: {
xxx: 'xxx',
},
});
if (res.statusCode === 200) {
console.log(res.data);
}
}Advanced Features
1. Interceptors
Taking into account the learning cost, our interceptors API design is modeled after the Axios.
import { request, interceptors } from '@huolala-tech/request';
// Add Authorization: xxx header for all requests.
interceptors.request.use((req) => {
req.headers = { ...Object(req.headers), Authorization: 'xxx' };
});
// If any request responds with a 401 code, go to login.
interceptors.response.use((res) => {
if (res.statusCode === 401) {
location.href = 'http://blahblahblah/';
}
});
request({ method: 'POST', url: 'http://localhost/api/user' });2. New Instance
You can use create method to create a pairs request and intercepters and set a common request parameters.
import { create } from '@huolala-tech/request';
const { request, interceptors } = create({
header: {
'x-request-with': '@huolala-tech/request'
}
});
// TODONOTE: The created pairs is an isolated instance, global
intercepterswill not act on the createdrequest.
1.1.4
1 year ago
1.1.3
2 years ago
1.1.1
2 years ago
1.1.0
2 years ago
1.0.8
2 years ago
1.0.7
2 years ago
1.0.6
2 years ago
1.0.5
2 years ago
1.0.4
2 years ago
1.1.2
2 years ago
1.0.2
3 years ago
1.0.1
3 years ago
1.0.0
3 years ago
1.0.3
2 years ago
0.0.7
3 years ago
0.0.6
3 years ago
0.0.5
3 years ago
0.0.4
3 years ago
0.0.3
3 years ago
0.0.2
3 years ago
0.0.1
3 years ago