You will get a clear understanding about working with any rest api and common concepts asked during interviews
Vivek Chavan
Last Updated Mar 7, 2025
REST APIs allow communication between client and server using HTTP methods like GET, POST, PUT, PATCH, and DELETE. The fetch API is a modern way to handle HTTP requests in JavaScript, providing a promise-based approach to fetch resources from the network.
The fetch API is a native JavaScript function for making network requests, returning a promise that resolves the response of the request.
It initiates a network request and returns a promise, which can be resolved to handle the response or rejected in case of errors.
GET request:The below code fetches a list of dog breeds, converts it into JSON, and logs into the console.
It logs an error in case the API fails because of any error from the server side or any network error.
Example:
fetch('https://dog.ceo/api/breeds/list/all')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
fetch('https://dog.ceo/api/breeds/list/all')
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(data => console.log(data))
.catch(error => console.error('Fetch error:', error));
The POST method is used to send data to the server to create or update a resource.
POST request with fetchThe code below represents a POST call with an object payload to create a blog post
fetch('https://jsonplaceholder.typicode.com/posts', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
title: 'foo',
body: 'bar',
userId: 1
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
PUT vs PATCH:
PUTis used to update an entire resource, whilePATCHis used to update only a part of the resource.
fetch('https://jsonplaceholder.typicode.com/posts/1', {
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
id: 1,
title: 'foo',
body: 'bar',
userId: 1
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
// PATCH request to update a specific field
fetch('<https://jsonplaceholder.typicode.com/posts/1>', {
method: 'PATCH',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ title: 'foo' })
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Note:
The difference between "PUT" and "PATCH" is that PUT is Idempotent.
Repeat PUT API calls multiple times have No Effect on the data store, in contrast to the PATCH call, where multiple patch calls may impact the data store.
The DELETE HTTP method is used to remove a resource from a list of resources.
DELETE request example using fetch:In the below example, the DELETE call deletes a post with Id 1 on successful execution otherwise it will throw an Error "Failed to delete resource."
fetch('https://jsonplaceholder.typicode.com/posts/1', {
method: 'DELETE'
})
.then(response => {
if (response.ok) {
console.log('Resource deleted successfully');
} else {
throw new Error('Failed to delete resource');
}
})
.catch(error => console.error('Error:', error));
Parallel API calls play a very important role in improving the performance of the web application by parallelly calling multiple API calls simultaneously. In this approach, client should not wait for one after the other API call to complete and overall reduce the time to fetch the resources from the server.
This is an important concept to know for frontend machine coding rounds, where unrelated API calls should be called using fetch & Promise.all() to improve the overall application performance and response time.
Here is an example, where using fetch() and Promise.all() we can fetch both breeds and random dog images simultaneously.
const breedListUrl = 'https://dog.ceo/api/breeds/list/all';
const randomDogImageUrl = 'https://dog.ceo/api/breeds/image/random';
Promise.all([
fetch(breedListUrl).then(response => response.json()),
fetch(randomDogImageUrl).then(response => response.json())
])
.then(results => {
const [breeds, randomImage] = results;
console.log('Breeds:', breeds);
console.log('Random Dog Image:', randomImage);
})
.catch(error => console.error('Error with parallel fetch:', error));
<img src="data:image/png;base64,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" width="414" height="331">
In general, this is a best practice to have a retry mechanism enabled for API calls so that if in case there is a REST API call fails due to some network issue or some server internal error, That issue can be resolved with retry mechanisms.
Note: Retry is a nice-to-have feature while building applications with API calls in frontend machine coding rounds.
In the below example, we can have a common function (ex- fetchWithRetry(URL, options, retries = MAX_RETRIES) ) which triggers the API call "n" number of retries if there is any failure.
Â
function fetchWithRetry(url, options = {}, retries = 3) {
return fetch(url, options).catch(error => {
if (retries > 0) {
console.log(`Retrying... (${retries} left)`);
return fetchWithRetry(url, options, retries - 1);
} else {
throw error;
}
});
}
fetchWithRetry('https://dog.ceo/api/breeds/list/all')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Final fetch error:', error));
<strong>Retry Flow</strong>
Be the first to share your thoughts!
No comments yet.
Start the conversation!
Build Your Portfolio
Help the Community
Strengthen Your Skills
Share your knowledge by writing a blog or quick notes. Your contribution can help thousands of frontend developers ace their interviews and grow their careers! 🚀
Frontendgeek
Last Updated Feb 6, 2026
A quick guide to explain an important react interview question, why React Hooks declarations are not allowed inside functions or any conditional blocks with code example.
Anuj Sharma
Last Updated Feb 6, 2026
A comprehensive list of important JavaScript Interview Questions and Answers for Beginners with a detailed explanation of the applied JavaScript concept for in-depth understanding.
Prateek Labroo
Last Updated Feb 4, 2026
React's rendering is powerful but can become a performance bottleneck in larger apps. Every state change triggers re-renders across your component tree—sometimes unnecessarily. Enter React.memo and useCallback: your optimization superheroes that prevent wasted renders and keep your app snappy.
Anuj Sharma
Last Updated Feb 6, 2026
A detailed list of 20+ most asked Frontend Machine Coding Round Interview Questions and resources both in JavaScript & React, also covers expected functional/Non-functional requirements.
Anuj Sharma
Last Updated Aug 3, 2025
Explore the implementation of setTimeout in JavaScript with a detailed explanation for every step. Understand all scenarios expected to implement the setTimeout polyfill.
Anuj Sharma
Last Updated Feb 6, 2026
Understand what all steps are involved in the Critical Rendering Path (CRP) and how optimization of different steps can improve the overall web-vitals of a web application
Subscribe to FrontendGeek Hub for frontend interview preparation, interview experiences, curated resources and roadmaps.
All in One Preparation Hub to Ace Frontend Interviews. Master JavaScript, React, System Design, and more with curated resources.
© 2026 FrontendGeek. All rights reserved