1.0.0 • Published 2 years ago
@rod-car/use-axios-api v1.0.0
@rod-car/use-api
An API utility based on axios for making REST API calls in React applications.
Installation
npm install @rod-car/use-apiUsage
import { useApi } from '@rod-car/use-api';
// Example usage
const api = useApi({
baseUrl: 'https://example.com'
url: '/resource',
key: 'data',
});
// Perform API actions using api.Client methods
api.Client.get(); // Fetch data
api.Client.post({ name: 'John Doe' }); // Create a new record
api.Client.put(1, { name: 'Updated Name' }); // Update a record
api.Client.find(1); // Find a record by ID
api.Client.patch(1, { partialData: 'Updated Data' }); // Partially update a record
api.Client.destroy(1); // Delete a recordAPI Reference
useApi(options: APIProps)
Initialize the API utility.
options:baseUrl(string): Base URL of the resources. It is optional.url(string): URL of the resource excluding the base URL.key(string): Key containing the data returned by the server. It is optional.
Returns an object with the following properties:
resetError(): Reset the error state.datas(array): Array of data fetched from the server.data: Single data object fetched from the server.RequestState: Object indicating the current request state.loading (boolean): Indicates if a request is in progress.creating (boolean): Indicates if a creation request is in progress.updating (boolean): Indicates if an update request is in progress.deleting (boolean): Indicates if a deletion request is in progress.
error: APIError object representing the error state.success: Boolean indicating the success state.Client: Object with methods for performing API actions.
Methods in Client
get(params?: Record<string, string | number>): Fetch a list of data.find(id: string | number, params?: Record<string, string | number>): Find a record by ID.post(data: Omit<T, "id">): Create a new record.put(id: string | number, data: Omit<T, "id">): Update a record.patch(id: string | number, data: Partial<Omit<T, "id">>): Partially update a record.destroy(id: string | number): Delete a record.
License
This package is released under the MIT License.
1.0.0
2 years ago