@agadajerry/api-request-builder-v1
v1.0.4
Published
Fluent Axios-based API request builder for React, Express, and NestJS
Downloads
419
Maintainers
Readme
API Request Builder
A fluent, Axios-based API request builder that works seamlessly in:
- ReactJS
- ExpressJS
- NestJS
- etc
Built using the Builder Pattern to make HTTP requests clean, readable, and reusable.
Features (v1)
- Fluent builder pattern
- Axios under the hood
- Works in browser & Node.js
- Supports headers, query params, body, timeout
- Bearer token support
- Fully typed (TypeScript)
Installation
npm
npm install @agadajerry/api-request-builder-v1or
yarn add @agadajerry/api-request-builder-v1Import
import { RequestBuilder } from '@agadajerry/api-request-builder-v1'Basic Usage
GET Request
const users = await new RequestBuilder()
.setBaseURL('https://api.example.com')
.setUrl('/users')
.setMethod('GET')
.execute();
console.log(users);POST Request
const result = await new RequestBuilder()
.setBaseURL('https://api.example.com')
.setUrl('/login')
.setMethod('POST')
.setHeaders({ 'Content-Type': 'application/json' })
.setBody({
email: '[email protected]',
password: 'password'
})
.execute();
console.log(result);Authorization (Bearer Token)
await new RequestBuilder()
.setBaseURL('https://api.example.com')
.setUrl('/profile')
.setMethod('GET')
.setAuthToken('YOUR_JWT_TOKEN')
.execute();Query Parameters
await new RequestBuilder()
.setBaseURL('https://api.example.com')
.setUrl('/products')
.setMethod('GET')
.setQueryParams({
page: 1,
limit: 20
})
.execute();Timeout
await new RequestBuilder()
.setBaseURL('https://api.example.com')
.setUrl('/slow-endpoint')
.setMethod('GET')
.setTimeout(5000) // 5 seconds
.execute();ReactJS Example
import { useEffect, useState } from 'react';
import { RequestBuilder } from '@agadajerry/api-request-builder-v1';
export function Users() {
const [users, setUsers] = useState([]);
useEffect(() => {
new RequestBuilder()
.setBaseURL('https://jsonplaceholder.typicode.com')
.setUrl('/users')
.setMethod('GET')
.execute()
.then(setUsers)
.catch(console.error);
}, []);
return (
<ul>
{users.map((u: any) => (
<li key={u.id}>{u.name}</li>
))}
</ul>
);
}License
MIT
🤝 Contributing
Contributions, issues, and feature requests are welcome!
