This package simplifies data retrieval through a straightforward function call. By passing an object as a parameter to
these functions, you can effortlessly obtain JSON data as the return output.
Here is an illustrative example outlining the necessary steps to enumerate the essential components required for using
the software, along with clear instructions on how to install each of them.
npm install npm@latest -g
Using npm :-
npm i api-config
Using yarn :-
yarn add api-config
N.B : bodyData object is mandatory for Post Api call. In other functions it is not mandatory
import {ApiConfig} from "api-config";
const apiConfig = new ApiConfig();
Initialize an instance of the apiConfig
class with predefined baseURL
and headers
for ease of use.
apiConfig.baseURL = "https://jsonplaceholder.typicode.com/todos";
apiConfig.headers = {
Authorization: localStorage.getItem("token")
};
By utilizing this example, you eliminate the need to repeatedly specify the baseURL
.
const data = await apiConfig.get("/todos");
Now, with the instance already configured, you can easily make requests without redefining the base URL each time.
Facilitating the retrieval of data from local storage is made simpler. There's no need to manually parse a stringified JSON object – just pass the key as a parameter to the function.
- A normal string of data
apiConfig.getLocalStorageValue("Key")
- A stringified JSON data
apiConfig.getLocalStorageValue("key")
As demonstrated, there's no need to parse the JSON object manually. Simply assign a variable within this function, and you can effortlessly retrieve your data stored in local storage.
-
The generateToken function is designed to create a cipher text token by utilizing the provided data and a given secret
key. -
To use this function, two essential inputs are required: a payload and a secret key.
-
The term
payload
in this context refers to the string or object that is intended to be encrypted. -
The
secret
is a key necessary for both encrypting and decrypting the payload, and it should be kept confidential.
Avoid public disclosure of the secret key.
const payload = {
email: "john@doe.com",
id: 123
};
const secret = "This is my secret key";
apiConfig.generateToken(payload, secret);
U2FsdGVkX19QVOZV/OYp+rQA5jc6agkp9I+ZlKoVy8peLfPDyA24OxmC+uIDvjM1bzZLqWeA0qYnm38Z5Sb7Yw==
-
The decodeToken function is specifically designed to decrypt a cipher text token.
-
It achieves decryption by utilizing a secret key, which was used during the encryption of the payload.
-
To employ this function successfully, two components are necessary: a payload and a confidential secret key.
-
The term
token
in this context refers to the specific string that is intended for decryption. -
The term
secret
denotes the crucial key that is required for both encrypting and decrypting the payload. -
It is of utmost importance to keep the secret key private and refrain from any public disclosure.
const token = "U2FsdGVkX19QVOZV/OYp+rQA5jc6agkp9I+ZlKoVy8peLfPDyA24OxmC+uIDvjM1bzZLqWeA0qYnm38Z5Sb7Yw==";
const secret = "This is my secret key";
apiConfig.decodeToken(token, secret);
{
email: "john@doe.com",
id:123
}
-
Facilitating the execution of a POST API request is simplified using this functionality. Just pass an object in the function's parameter, and the process becomes straightforward.
The function returns a promise, so you can utilize either the `then/catch` syntax or leverage `async/await` to handle its outcome.
-
If there is a token dependency, you have the flexibility to either input your token directly or, if the token is
stored in your local storage as atoken
, the function automatically handles this scenario. -
If this is utilized for login purposes, the function automatically stores the
token
in the local storage if it is
available in the result.
let's assume my URL is -
https://jsonplaceholder.typicode.com/todos
Instead of employing fetch or Axios, you can streamline your workflow by utilising the following function:
let data = await apiConfig.post({
url: "https://jsonplaceholder.typicode.com/todos",
bodyData: {
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
})
If your authToken
is stored in another storage,
let data = await apiConfig.post({
url: "https://jsonplaceholder.typicode.com/todos",
authToken: "YOUR_TOKEN",
bodyData: {
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
})
You can view the response
conveniently within the data
variable.
-
Executing a GET API request is simplified using this function. Pass an object as the parameter to initiate the process effortlessly.
The function returns a promise, providing the flexibility to handle it using either the `then/catch` syntax or through `async/await`.
-
In the case of a token dependency, you can either input your token directly or, if the
token
is available in your
local storage, this function automatically handles the scenario.
let's assume my url is -
https://jsonplaceholder.typicode.com/todos
Instead of resorting to fetch or Axios, you can simplify your approach by utilising the following function:
let data = await apiConfig.get({
url: "https://jsonplaceholder.typicode.com/todos"
})
If your authToken
is stored in another storage,
let data = await apiConfig.get({
url: "https://jsonplaceholder.typicode.com/todos",
authToken: "YOUR_TOKEN"
})
You can view the response
conveniently within the data
variable.
-
This function is designed for calling a PUT API effortlessly. Provide an object as a parameter to initiate the process.
The function returns a promise, providing the flexibility to handle it using either the
then/catch
syntax or throughasync/await
. -
In the presence of a token dependency, you have the flexibility to input your token or, if available in your local
storage as atoken
, the function automatically manages this scenario.
let's assume my URL is -
https://jsonplaceholder.typicode.com/todos
Instead of resorting to fetch or Axios, you can streamline your approach by utilising the following function:
let data = await apiConfig.put({
url: "https://jsonplaceholder.typicode.com/todos",
bodyData: {
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
})
If your authToken is stored in another storage,
let data = await apiConfig.put({
url: "https://jsonplaceholder.typicode.com/todos",
authToken: "YOUR_TOKEN",
bodyData: {
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
})
You can view the response
conveniently within the data
variable.
-
This function is designed for calling a PATCH API effortlessly. Provide an object as a parameter to initiate the process.
The function returns a promise, providing the flexibility to handle it using either the
then/catch
syntax or throughasync/await
. -
In the presence of a token dependency, you have the flexibility to input your token or, if available in your local
storage as atoken
, the function automatically manages this scenario.
let's assume my URL is -
https://jsonplaceholder.typicode.com/todos
Instead of resorting to fetch or Axios, you can streamline your approach by utilising the following function:
let data = await apiConfig.patch({
url: "https://jsonplaceholder.typicode.com/todos/1",
bodyData: {
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
})
If your authToken is stored in another storage,
let data = await apiConfig.patch({
url: "https://jsonplaceholder.typicode.com/todos/1",
authToken: "YOUR_TOKEN",
bodyData: {
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
})
You can view the response
conveniently within the data
variable.
-
This function is employed for calling a DELETE API seamlessly. Passing an object as a parameter to initiate the process.
The function returns a promise, providing the flexibility to handle it using either the
then/catch
syntax or throughasync/await
. -
In the presence of a token dependency, you can either input your token or if the token is available in your local
storage as atoken
, this function automatically manages this scenario.
let's assume my url is -
https://jsonplaceholder.typicode.com/todos
Instead of resorting to fetch or Axios, you can streamline your approach by utilising the following function:
let data = await apiConfig.delete({
url: "https://jsonplaceholder.typicode.com/todos/1",
bodyData: {
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
})
And if there is your authToken in another storage,
let data = await apiConfig.delete({
url: "https://jsonplaceholder.typicode.com/todos/1",
authToken: "YOUR_TOKEN",
bodyData: {
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
})
You can view the response
conveniently within the data
variable.
This interface is intended to be used as the parameter for the doGetApiCall
function.
interface getData {
url: string,
authToken?: string,
}
let data: getData = {
url: 'https://jsonplaceholder.typicode.com/todos'
}
This interface is meant to be used as the parameter for the doPostApiCall
function.
interface postData {
url: string,
authToken?: string,
bodyData: object
}
let data: getData = {
url: 'https://jsonplaceholder.typicode.com/todos',
bodyData: {
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
}
This interface should be used as the parameter for the doPostApiCall
function.
interface postData {
url: string,
authToken?: string,
bodyData?: object
}
N.B: The bodyData
parameter is optional in this context.
let data: updateData = {
url: 'https://jsonplaceholder.typicode.com/todos',
bodyData: {
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
}
This interface should be used as one of the paramater called payload for the generateToken function.
type genTokenPayload = string | Record<string, any> | Array<string | object>
const payload: genTokenPayload = {
email: "john@doe.com",
id: 123
};
const secret: string = "This is my secret key";
apiConfig.generateToken(payload, secret);