উদাহরণ সহ RxJava এবং Retrofit ব্যবহার

RxJava এবং Retrofit Integration - আরএক্সজাভা (RxJava) - Java Technologies

314

RxJava এবং Retrofit দুটি অত্যন্ত জনপ্রিয় লাইব্রেরি যা অ্যাসিঙ্ক্রোনাস অপারেশন এবং API কল করার জন্য ব্যবহৃত হয়। RxJava ডেটা স্ট্রিম এবং রিঅ্যাকটিভ প্রোগ্রামিংয়ের জন্য ব্যবহৃত হয়, যেখানে Retrofit হল একটি HTTP ক্লায়েন্ট লাইব্রেরি যা API রিকোয়েস্ট এবং রেসপন্স পরিচালনা করে।

এখানে একটি উদাহরণ দিয়ে দেখানো হবে কিভাবে RxJava এবং Retrofit একত্রে ব্যবহার করা যায়।


উদাহরণ: RxJava এবং Retrofit ব্যবহার করে API কল করা

ধরা যাক, আমাদের একটি পাবলিক API থেকে ডেটা নিতে হবে। আমরা Retrofit ব্যবহার করে API রিকোয়েস্ট তৈরি করব এবং RxJava ব্যবহার করে সেই রেসপন্স নিয়ে কাজ করব।

১. প্রয়োজনীয় লাইব্রেরি ইনস্টলেশন

প্রথমে, আপনার প্রকল্পে নিচের লাইব্রেরিগুলি যুক্ত করুন।

dependencies {
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
    implementation 'io.reactivex.rxjava3:rxjava:3.1.0'
    implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'
}

২. Retrofit ইন্টারফেস তৈরি

এখানে আমরা একটি API ইন্টারফেস তৈরি করব যা একটি GET রিকোয়েস্ট পাঠাবে।

public interface ApiService {
    @GET("users")
    Single<List<User>> getUsers();
}

এখানে, Single<List<User>> RxJava থেকে আসা ডেটা টাইপ, যা একটি একক আইটেম বা লিস্ট রিটার্ন করবে।

৩. Retrofit ইনিশিয়ালাইজ করা

এখন Retrofit ক্লায়েন্ট সেটআপ করা যাক।

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl("https://jsonplaceholder.typicode.com/")
        .addConverterFactory(GsonConverterFactory.create())
        .build();

ApiService apiService = retrofit.create(ApiService.class);

৪. RxJava ব্যবহার করে API কল করা

এখন RxJava দিয়ে API কল করা শুরু করা যাক। আমরা Single ব্যবহার করব যাতে একক রেসপন্স পাওয়া যায়।

apiService.getUsers()
        .subscribeOn(Schedulers.io()) // API কলটি ব্যাকগ্রাউন্ড থ্রেডে হবে
        .observeOn(AndroidSchedulers.mainThread()) // রেসপন্স মেইন থ্রেডে আসবে
        .subscribe(new SingleObserver<List<User>>() {
            @Override
            public void onSubscribe(Disposable d) {
                // সাবস্ক্রিপশন শুরু হলে এখানে কোড যাবে
            }

            @Override
            public void onSuccess(List<User> users) {
                // সফলভাবে রেসপন্স আসলে এখানে কোড যাবে
                for (User user : users) {
                    Log.d("User", user.getName());
                }
            }

            @Override
            public void onError(Throwable e) {
                // যদি কোনো এরর হয় তবে এখানে কোড যাবে
                Log.e("Error", e.getMessage());
            }
        });

৫. User ক্লাস তৈরি

এখানে, User ক্লাসটি ডেটা মডেল হিসেবে ব্যবহৃত হবে, যেটি JSON রেসপন্স থেকে ডেটা ম্যাপ করবে।

public class User {
    private int id;
    private String name;
    private String username;
    private String email;

    // Getters and setters
    public String getName() {
        return name;
    }
}

৬. মূল কোডে API কল করা

এখন আমরা আমাদের Activity বা Fragment এ এই কোডটিকে ব্যবহার করতে পারি, যেখানে API কল হবে এবং ডেটা রেসপন্স পেয়ে UI আপডেট হবে।


উপসংহার

RxJava এবং Retrofit একত্রে ব্যবহৃত হলে, অ্যাসিঙ্ক্রোনাস API কলগুলি পরিচালনা করা অনেক সহজ হয়ে যায়। RxJava ডেটার স্ট্রিম এবং ইভেন্ট-ড্রিভেন আচরণ ম্যানেজ করতে সাহায্য করে, এবং Retrofit সহজে HTTP রিকোয়েস্ট তৈরি এবং রেসপন্স পার্স করতে পারে। এই সমন্বয়টি অ্যাপ্লিকেশনের পারফরম্যান্স এবং কোড ম্যানেজমেন্টে সুবিধা প্রদান করে।


Content added By
Promotion

Are you sure to start over?

Loading...