- 1 سال قبل
- علیرضا نصراله زاده
کار با کتابخانه رتروفیت (Retrofit) در جت پک کامپوز (JetpackCompose)
پیشنهاد میشود که ابتدا اطمینان حاصل کنید که Retrofit و Jetpack Compose بهدرستی به پروژه شما اضافه شده باشند. سپس، برای استفاده از Retrofit در کامپوز، میتوانید مراحل زیر را دنبال کنید:
ابتدا Retrofit را به فایل build.gradle(Module: app) خود اضافه کنید:
implementation "com.squareup.retrofit2:retrofit:2.9.0"
implementation "com.squareup.retrofit2:converter-gson:2.9.0"
یک رابط (interface) برای تعریف درخواستهای شبکه ایجاد کنید:
interface ApiService {
@GET("posts/{id}")
suspend fun getPost(@Path("id") postId: Int): Post // جایگزین Post با مدل دادهای استفاده شده در پروژه خود شوید
}
Retrofit را تنظیم کنید و یک نمونه از رابط را ایجاد کنید:
val retrofit = Retrofit.Builder()
.baseUrl("https://api.example.com/") // URL پایه API خود را وارد کنید
.addConverterFactory(GsonConverterFactory.create())
.build()
val apiService = retrofit.create(ApiService::class.java)
حالا میتوانید از این نمونه برای فراخوانی درخواستهای شبکه استفاده کنید. به عنوان مثال، یک درخواست GET را فراخوانی کرده و نتیجه را نمایش دهید:
LaunchedEffect(Unit) {
val response = apiService.getPost(1) // 1 به عنوان مثال ID پست
if (response.isSuccessful) {
val post = response.body()
// از اطلاعات post برای نمایش در کامپوز یا انجام عملیات دلخواه استفاده کنید
} else {
// در صورت خطا، با استفاده از response.errorBody() میتوانید به جزئیات خطا دسترسی پیدا کنید
}
}
توجه داشته باشید که کد بالا در یک composable قرار دارد و برای استفاده از Retrofit با Jetpack Compose در این مثال از LaunchedEffect استفاده شده است. همچنین مطمئن شوید که این عملیات در یک thread مناسب (مثلاً با استفاده از withContext(Dispatchers.IO)) انجام شود، زیرا فراخوانی شبکه نباید در thread اصلی انجام شود.