@bradgarropy/http v2.0.0
📻 http
📻 http request library heavily inspired by axios.
Most of the time, fetch
is used to interact with a JSON API. This library is a thin wrapper around fetch
that converts the request and response body to JSON by default.
📦 Installation
This package is hosted on npm.
npm install @bradgarropy/http
🥑 Usage
This library's API is very similar to axios. You can issue HTTP requests which are assumed to be JSON by default. It returns a Promise
with the response data.
import {http} from "@bradgarropy/http"
// get all posts
const posts = await http.get("https://jsonplaceholder.typicode.com/posts")
// get one post
const post = await http.get("https://jsonplaceholder.typicode.com/posts/1")
// get posts by user
const userPosts = await http.get("https://jsonplaceholder.typicode.com/posts", {
params: {
userId: 1,
},
})
// create a post
const newPost = await http.post("https://jsonplaceholder.typicode.com/posts", {
body: {
userId: 1,
title: "My post title",
body: "This is my post body.",
},
})
// update a post
const newPost = await http.patch(
"https://jsonplaceholder.typicode.com/posts/1",
{
body: {
userId: 1,
title: "My new post title",
body: "This is my new post body.",
},
},
)
// delete a post
const oldPost = await http.delete(
"https://jsonplaceholder.typicode.com/posts/1",
)
📖 API Reference
Every method assumes that the response coming back from the API is json
.
The request body
is converted to a string
if the Content Type is json
, or a FormData
object if the Content Type is form
. The request body
is ignored when using the GET
method.
options
All methods support an options
object. Here are the set of supported options.
Name | Required | Default | Example | Description |
---|---|---|---|---|
headers | false | {} | {"authorization": "Bearer abc123"} | Headers object, similar to fetch . |
params | false | {} | {userId: 1} | Query parameters object. |
body | false | {} | {name: "Brad Garropy"} | Body to send to the API. Define the Content-Type using type . |
type | false | json | form | Content type of the body. (json | form ) |
get(url, options)
Name | Required | Default | Example | Description |
---|---|---|---|---|
url | true | https://jsonplaceholder.typicode.com/posts | Web address of the API. | |
options | false | {} | {params: {userId: 1}} | Request options. |
Perform an HTTP GET request.
// get without options
http.get("https://jsonplaceholder.typicode.com/posts")
// get with options
http.get("https://jsonplaceholder.typicode.com/posts", {
headers: {authorization: "Bearer abc123"},
params: {userId: 1},
body: {
first: "Brad",
last: "Garropy",
},
type: "json",
})
post(url, options)
Name | Required | Default | Example | Description |
---|---|---|---|---|
url | true | https://jsonplaceholder.typicode.com/posts | Web address of the API. | |
options | false | {} | {params: {userId: 1}} | Request options. |
Perform an HTTP POST request.
// post without options
http.post("https://jsonplaceholder.typicode.com/posts")
// post with options
http.post("https://jsonplaceholder.typicode.com/posts", {
headers: {authorization: "Bearer abc123"},
params: {userId: 1},
body: {
first: "Brad",
last: "Garropy",
},
type: "json",
})
patch(url, options)
Name | Required | Default | Example | Description |
---|---|---|---|---|
url | true | https://jsonplaceholder.typicode.com/posts | Web address of the API. | |
options | false | {} | {params: {userId: 1}} | Request options. |
Perform an HTTP PATCH request.
// patch without options
http.patch("https://jsonplaceholder.typicode.com/posts")
// patch with options
http.patch("https://jsonplaceholder.typicode.com/posts", {
headers: {authorization: "Bearer abc123"},
params: {userId: 1},
body: {
first: "Brad",
last: "Garropy",
},
type: "json",
})
delete(url, options)
Name | Required | Default | Example | Description |
---|---|---|---|---|
url | true | https://jsonplaceholder.typicode.com/posts | Web address of the API. | |
options | false | {} | {params: {userId: 1}} | Request options. |
Perform an HTTP DELETE request.
// delete without options
http.delete("https://jsonplaceholder.typicode.com/posts")
// delete with options
http.delete("https://jsonplaceholder.typicode.com/posts", {
headers: {authorization: "Bearer abc123"},
params: {userId: 1},
body: {
first: "Brad",
last: "Garropy",
},
type: "json",
})
❔ Questions
🐛 report bugs by filing issues
📢 provide feedback with issues or on twitter
🙋🏼♂️ use my ama or twitter to ask any other questions
✨ contributors
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago