A modern and light Node.js http client 🐢🚀.
The package is inspired by lukeed httpie (The use is relatively similar). This package use new Node.js http client undici under the hood.
- Automatically handles JSON requests and responses.
- Includes aliases for common HTTP verbs:
get
,post
,put
,patch
, anddel
. - Able to automatically detect domains and paths to assign the right Agent (use a LRU cache to avoid repetitive computation).
- Allows to use an accurate rate-limiter like
p-ratelimit
with thelimit
option. - Built-in retry mechanism with custom policies.
Thanks to undici:
- Support HTTP redirections with the
maxRedirections
argument. - Implement high-level API for undici stream and pipeline method.
- High performance (see benchmarks).
- Work well with newest Node.js API AbortController to cancel http request.
Light with seriously maintained dependencies:
- Node.js version 14 or higher
This package is available in the Node Package Repository and can be easily installed with npm or yarn.
$ npm i @myunisoft/httpie
# or
$ yarn add @myunisoft/httpie
The MyUnisoft httpie client is very similar to lukeed httpie http client.
import * as httpie from "@myunisoft/httpie";
try {
const { data } = await httpie.get("https://jsonplaceholder.typicode.com/posts");
console.log(data);
const response = await httpie.post("https://jsonplaceholder.typicode.com/posts", {
body: {
title: "foo",
body: "bar",
userId: 1
}
});
console.log(response.statusCode);
console.log(response.statusMessage);
console.log(response.data);
}
catch (error) {
console.log(error.message);
console.log(error.statusCode);
console.log(error.headers);
console.log(error.data);
}
👀 For more examples of use please look at the root folder examples.