Web Development HTTP Callable Functions এবং Custom API তৈরি করা গাইড ও নোট

261

ফায়ারবেস (Firebase)-এর HTTP Callable Functions ব্যবহার করে আপনি কাস্টম API তৈরি করতে পারেন, যা আপনার অ্যাপ্লিকেশনের জন্য সার্ভার সাইড লজিক হ্যান্ডল করতে সাহায্য করে। Firebase Functions-এ HTTP Callable Functions তৈরি করার মাধ্যমে আপনি বিভিন্ন ক্লায়েন্ট থেকে HTTP অনুরোধ গ্রহণ এবং প্রতিক্রিয়া প্রদান করতে পারেন।

এটি বিশেষভাবে উপকারী যখন আপনাকে বিভিন্ন থার্ড-পার্টি সেবা বা আপনার নিজস্ব সার্ভারের সাথে ইন্টিগ্রেট করতে হয়। Firebase Functions ব্যবহার করে আপনি খুব সহজে RESTful API তৈরি করতে পারেন যা আপনি আপনার মোবাইল বা ওয়েব অ্যাপে ব্যবহার করতে পারবেন।


Firebase HTTP Callable Functions

HTTP Callable Functions হল Firebase Cloud Functions এর একটি বিশেষ ধরনের ফাংশন, যা Firebase SDK এর মাধ্যমে ক্লায়েন্ট সাইড থেকে কল করা যায় এবং এটি HTTP রিকোয়েস্ট এবং রেসপন্স সিস্টেম ব্যবহার করে কাজ করে।

১. Firebase Functions Setup করা

প্রথমে, আপনাকে Firebase Functions সেটআপ করতে হবে।

  1. Firebase CLI ইনস্টল করুন: যদি আপনার কম্পিউটারে Firebase CLI ইনস্টল না থাকে, তাহলে এটি ইনস্টল করতে হবে:

    npm install -g firebase-tools
    
  2. Firebase প্রজেক্টে লগইন করুন:

    firebase login
    
  3. Firebase প্রজেক্ট ইনিশিয়ালাইজ করুন:

    firebase init functions
    
  4. Cloud Functions এবং Firebase Functions SDK ইনস্টল:

    functions ফোল্ডারে প্রবেশ করে firebase-functions এবং firebase-admin প্যাকেজগুলো ইনস্টল করুন।

    cd functions
    npm install firebase-functions firebase-admin
    

HTTP Callable Function তৈরি করা

Firebase Functions ব্যবহার করে HTTP Callable Function তৈরি করার জন্য, functions.https.onRequest() ব্যবহার করা হয়। এটি একটি HTTP রিকোয়েস্ট এবং রেসপন্স হ্যান্ডলার হিসেবে কাজ করে।

১. HTTP Callable Function উদাহরণ

নিচে একটি সহজ HTTP Callable Function উদাহরণ দেওয়া হলো:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

exports.addMessage = functions.https.onRequest((req, res) => {
    const message = req.query.text || req.body.text;

    // আপনি এখানে কাস্টম লজিক যোগ করতে পারেন
    res.status(200).send(`Message received: ${message}`);
});

এখানে:

  • functions.https.onRequest() একটি HTTP রিকোয়েস্ট হ্যান্ডলার তৈরি করে।
  • req.query.text বা req.body.text দ্বারা আপনি ক্লায়েন্ট সাইড থেকে পাঠানো ডেটা গ্রহণ করতে পারেন।
  • res.status(200).send() ব্যবহার করে আপনি সার্ভারের প্রতিক্রিয়া (response) পাঠাতে পারেন।

এটি একটি HTTP GET রিকোয়েস্ট গ্রহণ করবে এবং ক্লায়েন্ট থেকে প্রাপ্ত text কনটেন্টটি রেসপন্সে পাঠাবে।


২. Firebase Functions ডিপ্লয় করা

Firebase Functions ডিপ্লয় করতে Firebase CLI ব্যবহার করা হয়। নিচের কমান্ডটি ব্যবহার করুন:

firebase deploy --only functions

এটি Firebase Functions ডিপ্লয় করবে এবং আপনার HTTP Callable Function ক্লাউডে চলে যাবে।


ক্লায়েন্ট সাইড থেকে HTTP Callable Function কল করা

এখন, আপনি Firebase SDK ব্যবহার করে এই ফাংশনটি ক্লায়েন্ট সাইড থেকে কল করতে পারবেন। এখানে Web অ্যাপের জন্য একটি উদাহরণ দেওয়া হলো।

১. Web Client থেকে Function কল করা

import { getFunctions, httpsCallable } from "firebase/functions";

// Firebase Functions ইনস্ট্যান্স তৈরি
const functions = getFunctions();

// HTTP Callable Function কল করা
const addMessage = httpsCallable(functions, 'addMessage');

// ফাংশন কল করা
addMessage({ text: "Hello from Firebase!" })
    .then((result) => {
        // ফাংশন থেকে রেসপন্স
        console.log(result.data);
    })
    .catch((error) => {
        console.error("Error calling function:", error);
    });

এখানে:

  • httpsCallable() ফাংশনটি Firebase Functions থেকে HTTP Callable Function কল করতে ব্যবহৃত হয়।
  • addMessage() ফাংশনটি আপনার তৈরি করা HTTP Callable Function যা Firebase Functions থেকে কল করা হয়েছে।
  • result.data ব্যবহার করে আপনি রেসপন্স ডেটা পেতে পারেন।

২. মোবাইল অ্যাপ (অ্যান্ড্রয়েড) থেকে HTTP Callable Function কল করা

অ্যান্ড্রয়েড অ্যাপে Firebase Function কল করতে নিচের কোড ব্যবহার করা যেতে পারে:

FirebaseFunctions mFunctions = FirebaseFunctions.getInstance();

// কাস্টম ফাংশন কল করা
Map<String, Object> data = new HashMap<>();
data.put("text", "Hello from Firebase!");

mFunctions
    .getHttpsCallable("addMessage")
    .call(data)
    .addOnCompleteListener(task -> {
        if (task.isSuccessful()) {
            String result = (String) task.getResult().getData();
            Log.d("FirebaseFunction", "Response: " + result);
        } else {
            Exception e = task.getException();
            Log.e("FirebaseFunction", "Error calling function", e);
        }
    });

এখানে:

  • getHttpsCallable() মেথডটি Firebase Function কল করার জন্য ব্যবহৃত হয়।
  • আপনি data মানে ক্লায়েন্ট থেকে পাঠানো ডেটা প্রদান করছেন এবং task.getResult().getData() এর মাধ্যমে রেসপন্স গ্রহণ করছেন।

Custom API তৈরি করা

Firebase Functions-এর মাধ্যমে আপনি খুব সহজেই Custom API তৈরি করতে পারেন। উদাহরণস্বরূপ, আপনি একটি API তৈরি করতে পারেন যা ডেটাবেসে ডেটা লেখে, ডিলিট করে, বা আপডেট করে।

১. API-র জন্য Firebase Function তৈরি করা

exports.addUser = functions.https.onRequest((req, res) => {
    if (req.method === "POST") {
        const userData = req.body;

        // Firebase Realtime Database বা Firestore ব্যবহার করে ডেটা যুক্ত করা
        const db = admin.firestore();
        const usersRef = db.collection('users');
        
        usersRef.add(userData)
            .then(docRef => {
                res.status(201).send(`User added with ID: ${docRef.id}`);
            })
            .catch((error) => {
                res.status(500).send(`Error adding user: ${error.message}`);
            });
    } else {
        res.status(405).send('Method Not Allowed');
    }
});

এখানে:

  • req.body থেকে আপনি HTTP POST রিকোয়েস্টের মাধ্যমে প্রাপ্ত ডেটা গ্রহণ করছেন।
  • Firestore বা Realtime Database ব্যবহার করে আপনি সেই ডেটা সেভ করছেন।
  • res.status(201) এবং res.status(500) ব্যবহার করে HTTP স্ট্যাটাস কোড সহ প্রতিক্রিয়া পাঠানো হচ্ছে।

সারাংশ

ফায়ারবেস HTTP Callable Functions ব্যবহার করে আপনি সহজেই কাস্টম API তৈরি করতে পারেন, যা আপনার ক্লায়েন্ট সাইড অ্যাপ থেকে HTTP রিকোয়েস্ট গ্রহণ এবং প্রক্রিয়া করতে সাহায্য করবে। Firebase Functions এর মাধ্যমে আপনি RESTful API তৈরি করতে পারেন এবং Firebase Database বা অন্যান্য সেবা ইন্টিগ্রেট করে সার্ভার সাইড লজিক পরিচালনা করতে পারেন। Firebase Functions-এর এই ক্ষমতা অ্যাপ্লিকেশনকে আরও স্কেলেবল এবং গতিশীল করতে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...