API Error Handling Strategy

⚡ React Native (TypeScript) - File-based Backend Connectivity & API Error Handling

React Native অ্যাপ্লিকেশন ডেভেলপমেন্টে Backend API এর সাথে যোগাযোগ করা খুবই গুরুত্বপূর্ণ। এখানে আমরা দেখবো কিভাবে File-based Architecture ব্যবহার করে API কল করবেন এবং Error Handling Strategy ঠিকভাবে implement করবেন।


📌 ১. ফোল্ডার স্ট্রাকচার (File-based Architecture)

Backend Connectivity এর জন্য আমরা ফাইল ভিত্তিক structure ব্যবহার করবো। এটি কোডকে modular ও maintainable রাখে।

/src
 ├─ api/
 │   ├─ apiClient.ts
 │   ├─ userApi.ts
 │   └─ productApi.ts
 ├─ screens/
 │   ├─ HomeScreen.tsx
 │   └─ ProfileScreen.tsx
 └─ components/
     └─ Loader.tsx
  

এখানে apiClient.ts হবে centralized axios instance, আর userApi.tsproductApi.ts এ API endpoints define করা থাকবে।


📌 ২. Axios Client Setup

centralized API client তৈরি করুন যাতে base URL এবং common headers maintain করা যায়।

import axios from "axios";

const apiClient = axios.create({
  baseURL: "https://example.com/api",
  timeout: 5000,
  headers: {
    "Content-Type": "application/json",
  },
});

export default apiClient;
  

📌 ৩. API Endpoint File Example

প্রতিটি resource এর জন্য আলাদা ফাইল ব্যবহার করুন। যেমন: userApi.ts

import apiClient from "./apiClient";

export const getUsers = async () => {
  try {
    const response = await apiClient.get("/users");
    return response.data;
  } catch (error: any) {
    throw new Error(error.response?.data?.message || "Unknown API Error");
  }
};
  

📌 ৪. API Call in Screen with Error Handling

Screen এ API কল করার সময় loading state এবং error handling implement করা খুব গুরুত্বপূর্ণ।

import React, { useEffect, useState } from "react";
import { View, Text, FlatList } from "react-native";
import { getUsers } from "../api/userApi";
import Loader from "../components/Loader";

type User = {
  id: string;
  name: string;
  email: string;
};

const HomeScreen: React.FC = () => {
  const [users, setUsers] = useState([]);
  const [loading, setLoading] = useState(true);
  const [error, setError] = useState(null);

  useEffect(() => {
    const fetchUsers = async () => {
      try {
        const data = await getUsers();
        setUsers(data);
      } catch (err: any) {
        setError(err.message);
      } finally {
        setLoading(false);
      }
    };

    fetchUsers();
  }, []);

  if (loading) return ;
  if (error) return {error};

  return (
    
       item.id}
        renderItem={({ item }) => (
          
            {item.name}
            {item.email}
          
        )}
      />
    
  );
};

export default HomeScreen;
  

📌 ৫. Loader Component Example

import React from "react";
import { View, ActivityIndicator } from "react-native";

const Loader: React.FC = () => (
  
    
  
);

export default Loader;
  

✨ ৬. Output / Expected Behavior

  • App start করলে Loader দেখাবে।
  • API call সফল হলে Users list FlatList এ দেখাবে।
  • API call fail করলে error message centered red text এ দেখাবে।
  • Modular file-based architecture কোড maintain করা সহজ করে।

✅ এই পদ্ধতি অনুসরণ করলে আপনার React Native অ্যাপে Backend Connectivity হবে secure, scalable এবং error-free।

👼 Quiz
/

লোড হচ্ছে...