Axios দিয়ে API Call

📡 React Native (TypeScript) – Axios দিয়ে API Call (File Based Structure)

React Native অ্যাপে বাস্তব জীবনের প্রায় সব অ্যাপেই API থেকে ডাটা আনা লাগে। এই লেসনে আমরা শিখবো কীভাবে Axios ব্যবহার করে TypeScript + File Based Structure অনুসরণ করে সুন্দর ও মেইনটেইনেবল API Call করা যায়।


🤔 Axios কেন ব্যবহার করবো?

  • Fetch এর চেয়ে সহজ সিনট্যাক্স
  • Automatic JSON parsing
  • Error handling সহজ
  • Interceptor support
  • TypeScript এর সাথে খুব ভালো কাজ করে

📂 File Based Folder Structure

src/
 ├── api/
 │   └── axiosInstance.ts
 ├── services/
 │   └── userService.ts
 ├── types/
 │   └── user.ts
 └── screens/
     └── UserScreen.tsx
  

⚙️ Step 1: Axios Instance তৈরি করা

প্রথমে আমরা একটি common Axios instance বানাবো যাতে baseURL একবার সেট করলেই সব জায়গায় ব্যবহার করা যায়।

import axios from "axios";

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

export default axiosInstance;
  

🧾 Step 2: TypeScript Type তৈরি করা

API থেকে যেই ডাটা আসবে তার জন্য আমরা TypeScript interface ব্যবহার করবো।

export interface User {
  id: number;
  name: string;
  email: string;
}
  

🔌 Step 3: API Service File তৈরি করা

API Call সবসময় Screen ফাইলের বাইরে রাখা ভালো। এতে কোড clean থাকে।

import axiosInstance from "../api/axiosInstance";
import { User } from "../types/user";

export const getUsers = async (): Promise<User[]> => {
  const response = await axiosInstance.get<User[]>("/users");
  return response.data;
};
  

📱 Step 4: Screen থেকে API Call করা

এখন আমরা React Native Screen থেকে Axios API call করবো।

import React, { useEffect, useState } from "react";
import { View, Text, FlatList, ActivityIndicator } from "react-native";
import { getUsers } from "../services/userService";
import { User } from "../types/user";

const UserScreen: React.FC = () => {
  const [users, setUsers] = useState<User[]>([]);
  const [loading, setLoading] = useState(true);

  useEffect(() => {
    fetchUsers();
  }, []);

  const fetchUsers = async () => {
    try {
      const data = await getUsers();
      setUsers(data);
    } catch (error) {
      console.log("API Error:", error);
    } finally {
      setLoading(false);
    }
  };

  if (loading) {
    return <ActivityIndicator size="large" color="teal" />;
  }

  return (
    <FlatList
      data={users}
      keyExtractor={(item) => item.id.toString()}
      renderItem={({ item }) => (
        <View>
          <Text>{item.name}</Text>
          <Text>{item.email}</Text>
        </View>
      )}
    />
  );
};

export default UserScreen;
  

🖥️ Output (কি দেখাবে?)

📱 Mobile Screen Output:

  • User Name দেখাবে
  • User Email দেখাবে
  • ডাটা লোড হওয়ার সময় Loader দেখাবে

✅ Best Practices

  • Axios instance আলাদা ফাইলে রাখুন
  • API logic service ফাইলে রাখুন
  • TypeScript interface অবশ্যই ব্যবহার করুন
  • Error handling try/catch দিয়ে করুন
  • Loader ব্যবহার করুন
🎯 এই স্ট্রাকচার ফলো করলে আপনার React Native App হবে Clean, Scalable এবং Professional
👼 Quiz
/

লোড হচ্ছে...

Interview Questions:

1. Axios কী?

Axios হলো HTTP client library।

2. Fetch ও Axios এর পার্থক্য কী?

Axios automatic JSON parse ও error handling দেয়।

3. API call কোথায় করা উচিত?

useEffect বা service layer এ।