Exercise 19: Fetch with Request Body Validation
Problem Statement
Create a function `fetchWithValidation(url, data, validator)` that validates request body before sending.
Example: fetchWithValidation(url, data, (d) => d.name)
Sample Output:
await fetchWithValidation(url, data, (d) => d.name) // Validates data before sending
Solution
const fetchWithValidation = async (url, data, validator) => {
if (!validator(data)) throw new Error("Validation failed");
return fetch(url, {
method: "POST",
headers: {"Content-Type": "application/json"},
body: JSON.stringify(data)
});
};Explanation
Overall Goal:
- Request body ko validate karna before sending.
Real world:
- Input validation: data validation.
- API contracts: request validation.