Skip to main content

API Requests

Generic GET, POST, PUT & DELETE Requests

serverRequests.js

async function serverRequest(serverdata) {

// var data = {
// request_method: "GET", // POST // PUT // GET
// request_url: "/api/profile",
// request_header: "form"// form , jsondata
// body_data:{}// form , jsondata
// }

const { request_method, request_url, request_header, body_data } = serverdata;

let final_request_object = { method: request_method };
if (request_method !== 'GET') {
if (request_header === 'form') {
final_request_object.body = body_data;
} else {
final_request_object.headers = { "Content-Type": "application/json" };
final_request_object.body = body_data;
}
}

try {
const res = await fetch(request_url, final_request_object);
const data = await res.json();

let finalreturnObj = { error: true , errorMessage: [], status:200 , data: undefined };
if (data.errors) {
finalreturnObj.error = true;
finalreturnObj.errorMessage = data.errors;
finalreturnObj.status = data.status;
} else{
finalreturnObj = { error: false, data:data };
}

return finalreturnObj;
} catch (error) {
finalreturnObj.error = true;
finalreturnObj.errorMessage = error;
finalreturnObj.status = 500
return finalreturnObj
}
}



function statusMessage(response){


switch (response.status) {
case 200:
// OK - The request was successful
return "The request was successful";

case 400:
// Bad Request - The request was malformed or invalid
return "The request was malformed or invalid";
case 401:
// Unauthorized - The request requires authentication
return response.json().then(err => Promise.reject(err));
case 403:
// Forbidden - The request is not authorized for the current user
return response.json().then(err => Promise.reject(err));
case 404:
// Not Found - The requested resource could not be found
return response.json().then(err => Promise.reject(err));

case 500:
// Internal Server Error - An unexpected error occurred on the server
return response.json().then(err => Promise.reject(err));

case 503:
// Service Unavailable - The server is currently unable to handle the request
return response.json().then(err => Promise.reject(err));
default:
// Unexpected status code
return response.json().then(err => Promise.reject(err));

}
}
module.exports = { serverRequest,statusMessage };

Calling APIs from Next.js

GET Request

sample.jsx

let finalData = {
request_method: "GET",
request_url: "/api/multiupload",
}

var finalObj= await serverRequest(finalData);

setLoader(false); // Show Loader

if (finalObj.error == true) { // Error
console.log("Error>>>", finalObj.errorMessage)
}else{ // Success
console.log("Success>>>", finalObj)
}

POST Request with FormData

sample.jsx

let formData = new FormData()
formData.append("input1", input1Value); // Add Key Value pairs

let finalData = {
request_method: "POST",
request_url: "/api/multiupload",
request_header: "form",
body: formData
}

var finalObj= await serverRequest(finalData);

setLoader(false); // Show Loader

if (finalObj.error == true) { // Error
console.log("Error>>>", finalObj.errorMessage)
}else{ // Success
console.log("Success>>>", finalObj)
}

POST Request with JSON object

sample.jsx

let formData = {
"name": input1Value,
"email": input2Value
}

let finalData = {
request_method: "POST",
request_url: "/api/multiupload",
request_header: "jsondata",
body: JSON.stringify(formData)
}

var finalObj= await serverRequest(finalData);

setLoader(false); // Show Loader

if (finalObj.error == true) { // Error
console.log("Error>>>", finalObj.errorMessage)
}else{ // Success
console.log("Success>>>", finalObj)
}

PUT Request with FormData

sample.jsx

let formData = new FormData()
formData.append("input1", input1Value); // Add Key Value pairs

let finalData = {
request_method: "PUT",
request_url: "/api/multiupload",
request_header: "form",
body: formData
}

var finalObj= await serverRequest(finalData);

setLoader(false); // Show Loader

if (finalObj.error == true) { // Error
console.log("Error>>>", finalObj.errorMessage)
}else{ // Success
console.log("Success>>>", finalObj)
}

PUT Request with JSON object

sample.jsx

let formData = {
"name": input1Value,
"email": input2Value
}

let finalData = {
request_method: "PUT",
request_url: "/api/multiupload",
request_header: "jsondata",
body: JSON.stringify(formData)
}

var finalObj= await serverRequest(finalData);

setLoader(false); // Show Loader

if (finalObj.error == true) { // Error
console.log("Error>>>", finalObj.errorMessage)
}else{ // Success
console.log("Success>>>", finalObj)
}

DELETE Request

sample.jsx

let formData = {
"id": input1Value,
"key": input2Value
}

let finalData = {
request_method: "DELETE",
request_url: "/api/multiupload",
request_header: "jsondata",
body: JSON.stringify(formData)
}

var finalObj= await serverRequest(finalData);

setLoader(false); // Show Loader

if (finalObj.error == true) { // Error
console.log("Error>>>", finalObj.errorMessage)
}else{ // Success
console.log("Success>>>", finalObj)
}