
برای این که داده هایی را از دیتابیس سرور در اپلیکیشن اندروید نمایش بدهیم نیاز هست که به سرور متصل شویم و داده های مورد نظر خود را بگیریم.
Retrofitکتابخانه ای است که انجام درخواست هایAPIرا بسیار ساده تر می کند.
RetrofitیکClient Type Safe RESTبرایAndroid است که توسط شرکتsquareساخته شده است.
Retrofitبرای درخواستHTTPاز کتابخانهokHttpاستفاده می کند.
Retrofitیکی از بهترین ابزارهایی است که برای انجام درخواست به سرور در برنامه های اندرویدی استفاده میشود.
Retrofitبه سه مورد زیر نیاز دارد:
- Retrofit Instance
ما می توانیم نمونه ای ازRetrofitرا توسط کلاسRetrofit.Builderایجاد کنیم.
ما بایدBaseurlوconverter factoryرا در زمان ایجاد نمونهRetrofitمشخص کنیم
مثال:
val retrofit = Retrofit.Builder().baseUrl("www.bugeto.net/api/")
.addConverterFactory(GsonConverterFactory.create())
.build()
- Modelو Class
Retrofitبرای ارسال و دریافت درخواست به یک کلاسPOJOنیاز دارد.
Retrofitاز کلاسPOJOبرایparseکردن پاسخ سرور با استفاده از مبدل هایی مانندGson،Jackson،Moshiو غیره استفاده می کند.
مثال:
class Contact(
@SerializedName("name")
var Name:String,
@SerializedName("email")
var Email:String
)
- An Interface for possible Api calls
Interfaceشامل متد هایی است که برای ارتباط باapi های موجود است.
هر متد بهannotationپایان آدرسapi نیاز دارد که بیانگر متد هایHttpمانندGET وPOSTوغیره است.
نوع برگشتی هریک از این متد ها نمونه ای از کلاسCall رتروفیت است.
مثال:
interface ApiService {
@POST("contact")
fun getContacts(): Call<List<Contact?>?>?
}
نحوه ارسال درخواست
برای ارسال درخواست باید یک نمونه ازinterface را با فراخوانی متدcreate() ازRetrofit Inctanceبدست آوریم.
با استفاده از نمونهinterfaeمیتوانیم از طریق متد های آن باApiمورد نظر ارتباط برقرار کنیم.
val apiService: ApiService = ApiClient.getApiClient().create(ApiService::class.java)
val call: Call<List<Contact>> = apiService.getContacts()
call.enqueue(object : Callback<List<Contact?>?> {
override fun onResponse(
call: Call<List<Contact?>?>,
response: Response<List<Contact?>?>
) {
//handle Response here
}
override fun onFailure(
call: Call<List<Contact?>?>,
t: Throwable
) {
//handle error here
}
})
Retrofitدرخواست را به سمت سرور ارسال میکند و منتظر پاسخ میماند این کار را در تِرِد بک گراند انجام میدهد ونتیجه در خواست را به متد هایonResponse()وonFailure()در تِرِدMainتحویل میدهد.
جدیدترین ویدئوهای آموزشی
در بخش TV باگتو، آموزش های کوتاه و جدید را مشاهده نمایید