Fetch API
fetch()
is a function used to send the requests to APIs and retrieve data.
const response = fetch('someapi.com');
How Does It Work?
When you pass the URL to fetch()
, JavaScript creates a request object internally.
// Internal working
const request = new Request('someapi.com', { method: 'GET' }); const response = fetch(request);
The above demonstrates the initial workings of fetch()
, abstracting away the complexities for you.
Response Object
fetch()
is asynchronous, returning a promise that resolves later.
const url = "https://jsonplaceholder.typicode.com/todos/1"; async function fetchData() { const response = await fetch(url); console.log(response);
} fetchData();
This will output the response object. To obtain data, you need to convert the response object into JSON.
const url = "https://jsonplaceholder.typicode.com/todos/1"; async function fetchData() { const response = await fetch(url); const data = await response.json(); console.log(data.title);
} fetchData();
GET Requests Parameters
For specific data, parameters can be added to the URL, but this method isn’t secure, For safety, include parameters in the request object.
const url = 'someUrl'; async function getData() { const request = new Request(url, { headers: { 'Authorization': 'token' } }); const response = await fetch(request); const data = await response.json(); console.log(data);
} getData();
Error Handling
Handle errors properly. If the request is successful but the data retrieval fails. it’s still considered a success.
let’s handle the error if the request is made successfully but the data retrieval fails. Check the status code for error handling.
try { const response = await fetch(request); if (response.status === 200) { const data = await response.json(); console.log('Success', data); } else { console.log('Server error', data.error.message); }
} catch(error) { console.log(error);
}
POST Request
When you send data to a server, like when submitting a form, you can use the POST
method. To do this with fetch()
, you need to include the data you want to send in the request body.
const request = new Request(url, { headers: {...}, body: {...}
});
For more detailed information on the Fetch API, refer to the MDN documentation.
Comment your thoughts…
See you in the next chapter…
Discover more from Coursity
Subscribe to get the latest posts sent to your email.