@ronas-it/rtkq-entity-api
v0.2.7
Published
Wrapper utilities for CRUD operations with REST APIs entities using RTK Query
Downloads
195
Readme
RTK Query Entity API
Wrapper utilities for CRUD operations with REST APIs entities using RTK Query.
Usage
- Install the package:
npm i @ronas-it/rtkq-entity-api
- Create base query with your API configuration, for example using Axios:
import axios from 'axios';
import { createApiCreator, createAxiosBaseQuery } from '@ronas-it/rtkq-entity-api';
const axiosBaseQuery = createAxiosBaseQuery({
getHttpClient: () => axios.create({ baseURL: 'https://your-api-url.com' }),
});
export const createAppApi = createApiCreator({
baseQuery: axiosBaseQuery,
});
- Now you can generate your entity APIs with this creator:
import { createEntityApi } from '@ronas-it/rtkq-entity-api';
import { createAppApi } from 'your-project/utils';
import { User } from 'your-project/models';
export const usersApi = createEntityApi({
entityName: 'user', // An entity name. Must by unique
entityConstructor: User, // The entity model class constructor. Supports class-transformer
baseApiCreator: createAppApi, // The api creator that shares configuration for new APIs
baseEndpoint: '/users', // Endpoint, relative to base URL configured in the API creator
omitEndpoints: ['create', 'update', 'delete'], // Allow only 'get' and 'search' methods
});
- Use the api you created as usual one created by RTK Query
TODOs
- Extend Readme
- Add code documentation and examples
- Remove peer-dependencies from axios-observable and luxon