رفتن به مطلب

دوره آموزشی رتروفیت پیشرفته برای کار با API (قسمت چهارم اضافه شد)


Gray Mind

ارسال‌های توصیه شده

با سلام دوستان

با دوره آموزشی رتروفیت پیشرفته در خدمت شما هستم

تو این دوره سعی شده به صورت پیشرفته تر با رتروفیت کار کنیم و از قابلیت هاش به صورت بهینه تر استفاده کنیم

یکی از مهمترین قابلیت های این کتابخونه اینه که شما یه کلاس مدل میسازید و رتروفیت به صورت خودکار جیسون هایی که از سرور گرفته رو Parse میکنه و به صورت آبجکت بهتون تحویل میده و این خودش میتونه کلی از کدنویسی هاتون رو کم کنه

شما تو این دوره یاد میگیرید که چطور با یه API که آماده هستش کار کنید . مقادیر بهش ارسال کنید و جواب رو بگیرید، فایل آپلود کنید، یاد میگیریم چطور رتروفیت رو با  RxJava  مخلوط کنیم تا سرعت بیشتر بشه و به صورت مولتی ترد به سادگی کار کنیم .

نکته ی مهم : تو این آموزش هیچگونه کدنویسی سمت سروری صورت نمیگیره و فرض رو بر این میذاریم که قبلا نوشته شده . 

 

عنوان هر قسمت به ترتیب :

1- آموزش متد گت

2- آموزش متد پست

3- آموزش آپلود عکس

4- آموزش ترکیب رتروفیت و RxJava

 

---------------------------------------------------

آپشن هایی که میتوانید برای ارسال مقادیر به سرور استفاده کنید :

@Path : برای جایگذاری مقدار در آدرس ای پی آی

API : http://api.com/user/{username}

Retrofit : @Path("username") String UserName

 

@Query : برای ارسال مقادیر همراه متد گت

API Sample Required : http://api.com/user/feed?123

Retrofit : @Query("feed") int FeedID

 

@Field : برای ارسال مقادیر همراه متد پست

 

@Map : برای ارسال مقادیر مانند هش مپ در اندروید

 

@Part : برای ارسال فایل و مقادیر همراه فایل برای آپلود در سرور

 

@Header : برای ارسال هدر به سرور (اگر نیاز بود)

API Required Header : DeviceID , UserAgent

there is a two type of declaration : 

Type 1 : StaticDeclaration

Single Header :
@Headers("deviceid: 132564")
@GET("endpoint")
Call<> ....

Multi Header :
@Headers({
"deviceid: 132564",
"useragent: android-retrofitsample
})
@GET("endpoint")
Call<> ....

Type 2 : DynamicDeclaration

@GET("endpoint")
Call<ResponseBody> sampleRequst(@Header("useragent") String UserAgent, @Header("deviceid") String DeviceID);

---------------------------------------------------

 

آموزش ها به ترتیب در چند روز آینده اضافه میشه ...

اگر آموزش دیگه ای به ذهنم رسید به لیست اضافه میکنم

اگر آموزشی در رابطه با کتابخانه ی رتروفیت خواستید تو همین تاپیک یا پ.خ عنوان کنید تا در آینده به تاپیک اضافه ش کنم .

 

موفق باشید :heart:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

آموزش ها کاملا عالی و دقیق
خداشاهده چندین ماهه دارم دنبال یه اتصال به سرور واسه استدیو میگردم اصلا چیز بدرد بخوری ندیدم اما با این آموزش کلا بی نیاز از همه اموزش ها شدم از مدرس عزیز تشکر میکنم و امیدوارم موفق باشی

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام مرسی از آموزش خوبتون واقعا عالیه:53:

یه سوال کوچیک داشتم گفتم شاید سوال دوستان هم باشه

اگه داخل جیسون دریافت مون یک جیسون دیگه بود چیکار کنیم دستی پارس ش کنیم که فکر کنم زیاد جالب نیست یه آموزش هایی انگلیسی دیدم ولی درست متوجه  نشدم که ایشون  مثل شما می اومد به جای یکی چند تا CategoryModel  درست کرد و به راحتی تبدیل کرد

اگه میشه بهمون بگید چطوری میشه

[
	{
		"name":"test",
		"now":"exit"
	}

	{
		"name":"test2",
		"now":"[{"name":"test3","now":"Toast"}]"
	}
]

مرسی از شما:53:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱ ساعت قبل، amir54 گفته است :

سلام مرسی از آموزش خوبتون واقعا عالیه:53:

یه سوال کوچیک داشتم گفتم شاید سوال دوستان هم باشه

اگه داخل جیسون دریافت مون یک جیسون دیگه بود چیکار کنیم دستی پارس ش کنیم که فکر کنم زیاد جالب نیست یه آموزش هایی انگلیسی دیدم ولی درست متوجه  نشدم که ایشون  مثل شما می اومد به جای یکی چند تا CategoryModel  درست کرد و به راحتی تبدیل کرد

اگه میشه بهمون بگید چطوری میشه


[
	{
		"name":"test",
		"now":"exit"
	}

	{
		"name":"test2",
		"now":"[{"name":"test3","now":"Toast"}]"
	}
]

مرسی از شما:53:

نه نیازی به پارس کردن دستی نیست

همونطور که قبلا هم گفتم این کتابخونه هرچقدر هم تو در تو باشه کاملا خودکار پارس میکنه

خوب شما کافیه یه مدل دیگه درست کنید دقیقا مثل CategoryModel و به نیاز چندتا متغیر که داخل جیسون آبجکت های لیست دوم هست تعریف میکنی SerializedName هارو ست میکنید

و در آخر هم توی مدل اصلی میاید و یه متغیر از نوع اون کلاس مدل دوم تعریف میکنید و SerializedName رو برابر با اسم اون JsonArray میدین مثال زیر رو ببینید :

ما این جیسون رو داریم :

{
"site":"answercenter"
"users:[
	{
		"id":1,
		"username":"Gray Mind",
		"name":"Benyamin"
	},
	{
		"id":2,
		"username":"
	}
	],
"admin":{
	"username":"izadi",
	"name":"Mehdi Izadi"
	}


}

 

خوب حالا ما سه تا کلاس مدل لازم داریم‌:

SiteModel

public class SiteModel {
    @SerializedName("site")
    @Expose
    private String site;

    @SerializedName("users")
    @Expose
    private ArrayList<UsersModel> users;

	@SerializedName("admin")
    @Expose
    private AdminModel admin;

    //getter setters
}

UsersModel :

public class UsersModel{
    @SerializedName("id")
    @Expose
    private int id;

    @SerializedName("username")
    @Expose
    private String username;

  @SerializedName("name")
    @Expose
    private String name;

    //getter setters
}

و در آخر AdminModel :

public class AdminModel{
    @SerializedName("username")
    @Expose
    private String username;

	@SerializedName("name")
    @Expose
    private String name;

    //getter setters
}

و درخواستمون هم همون مثل قبل هستش :

@GET("EndPoint")
Call<SiteModel> getSite();

به همین راحتی همه شون رو به صورت آبجکت برمیگردونه که البته یادتون نره getter و setter هارو هم بذارید همون getId و ...

 

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 1 سال بعد...

سلام وقت بخیر

ببخشید که این پست رو بالا آوردم

میخواستم اگه لطف کنید فایل php آپلود عکس رو بهم بدید

(من توی php یکم  تازه کار هستم و میخوام الگو بگیرم ازتون)

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 1 ماه بعد...
در در 12 آذر 1398 در 16:09، amir mahdizadeh گفته است :

سلام وقت بخیر

ببخشید که این پست رو بالا آوردم

میخواستم اگه لطف کنید فایل php آپلود عکس رو بهم بدید

(من توی php یکم  تازه کار هستم و میخوام الگو بگیرم ازتون)

بک اند پی اچ پی خالی نیستش، با یکی از فریمورک های پی اچ پی نوشته شده به اسم Laravel که خودش هندل میکنه این چیزارو

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .
توجه: مطلب ارسالی شما پس از تایید مدیریت برای همه قابل رویت خواهد بود.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
  • اضافه کردن...