এই কোর্সের আগের প্রতিটা lesson একটা server বানিয়েছে যা request receive করে। এই lesson অন্য দিক — একটা Node script বা server অন্য একটা API call করা, browser JavaScript থেকে ইতিমধ্যে পরিচিত একই fetch function ব্যবহার করে।
Node 18 আর তার পরে একটা global fetch আসে — কোনো package install করা লাগে না, কোনো import দরকার নেই।
const response = await fetch('https://api.example.com/users')
const users = await response.json()
console.log(users)বেশিরভাগ Node error handling-এর মতো না, একটা 404 বা 500 response-এর জন্য fetch throw করে না — শুধু একটা আসল network failure-এর জন্য করে। Status-এর একটা স্পষ্ট check দরকার।
const response = await fetch('https://api.example.com/users/999')
if (!response.ok) {
throw new Error(`Request failed: ${response.status}`)
}
const user = await response.json()const response = await fetch('https://api.example.com/users', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name: 'Sam', email: 'sam@example.com' }),
})
const created = await response.json()const response = await fetch('https://api.example.com/orders', {
headers: { Authorization: `Bearer ${apiToken}` },
})async function apiGet(path) {
const response = await fetch(`https://api.example.com${path}`, {
headers: { Authorization: `Bearer ${process.env.API_TOKEN}` },
})
if (!response.ok) {
throw new Error(`API error ${response.status}: ${await response.text()}`)
}
return response.json()
}
const orders = await apiGet('/orders')কখন একটা library এখনো সাহায্য করে
axios-এর মতো third-party library এখনো আসল সুবিধা যোগ করে (স্বয়ংক্রিয় JSON parsing, request/response interceptor, built-in timeout handling) — একটা বড় project-এ এটার জন্য যাওয়ার যোগ্য। একটা dependency যোগ না করেই built-in fetch বেশিরভাগ প্রতিদিনের case-এর জন্য যথেষ্ট।