API Request Functions Comparison

FeatureapiRequestfetchWithRetry
Retry Mechanism Supports automatic retries
Default Fallback Value Returns defaultValue
Query Parameters Automatically handles params
Token Support
JSON Body
Generic Return Type <T>

🚀 fetchWithRetry = "Smarter Fetch"

  • Automatically retries on failure
  • Handles query params + JSON + token seamlessly
  • Returns safe default value if API fails
  • Type-safe with TypeScript generics

Basic Usage Example


                                const skills = await fetchWithRetry<SkillModel[]>(
                                    "/api/skills",              // Endpoint URL
                                    [],                         // Default value if request fails
                                    {
                                        params: { level: "senior" },  // Query parameters
                                        token: "abc123"               // Auth token
                                    },
                                    2                           // Number of retries
                                );
                                console.log(skills);
                                // Returns: API result or [] if all retries fail
                            

Query Parameters Explained

Example: GET /users?role=admin&page=2

The parameters role=admin and page=2 are query parameters. If your GET endpoint doesn't need filters, you can omit the params option.

With Parameters (Optional)

                                        const users = await fetchWithRetry<User[]>(
                                            ENDPOINTS.users,
                                            [],
                                            {
                                               params: { role: "admin" }
                                            }
                                        );
                                    
Without Parameters

                                        const allUsers = await fetchWithRetry<User[]>(
                                            ENDPOINTS.users,
                                            []
                                        );
                                    

Rule of Thumb: HTTP Methods & Parameters

MethodData LocationParams Needed?
GETURL query stringOptional (for filters/search)
POSTRequest bodyUsually no query params
PUTRequest body + URLURL required for resource ID
PATCHRequest body + URLURL required for resource ID
DELETEURLRequired (which resource to delete)

📊 Visual Demonstration

API comparison demonstration