api

كيفية اضافة رابط API داخل الاندرويد ستوديو

 كيفية اضافة رابط API داخل الاندرويد ستوديو


بسم الله الرحمن الرحيم السلام عليكم ورحمه الله وبركاته متابعي ومتابعات موقع ومدونة جي كودرس مرحبا بكم في مقاله جديده في هذه المقالة باذن الله سوف نتعرف على كيفية ربط api بالاندرويد استوديو حيث في أول مقالة من دروس تعلم الاي بي اي تعرفنا عليها وتعرفنا على ما هي مميزاتها ولماذا هي مهمة وفي ثاني مقالة تعرفنا على كيفية الحصول على عنوان اليو ار ال - url الخاص بـ api وكيف يتم ربطه داخل اندرويد-ستوديو ولكن كل هذا كنا بشكل نظري واليوم سوف يكون التطبيق عملي داخل اندرويد ستوديو ارجو منكم التركيز جدا في هذه المقالة لانها تعتبر اول ما قال عملي في ربط الاندرويد ستوديو بالاي بي اي


كيفية اضافة رابط API داخل الاندرويد ستوديو


بعد ان قمت بلصق الملفات الخاصة بي API داخل مجلد كلاس الجافا ستشاهد وجود ايرور في الاكواد لذلك قم بإضافة مكتبة retrofit و retrofit converter الاوله تجعل البرنامج قادر على فهم الاوامر والاخرى تحول الاكواد المكتوبة بصيغة gson وايضا ستضيف picasso وهي مسؤوله عن عرض الصور من الانترنت و recyclerview و cardview


dependencies {

    implementation 'com.squareup.retrofit2:retrofit:2.6.1'

    implementation 'com.squareup.retrofit2:converter-gson:2.6.1'

    implementation 'com.squareup.picasso:picasso:2.71828'

    implementation 'androidx.recyclerview:recyclerview:1.1.0'

    implementation "androidx.cardview:cardview:1.0.0"	

}




 قم الان بعمل كلاس جديد من نوع انترفيس interface وقم بعمل Call للـ ExampleNewsResponse وهو الكلاس المحتوي على البيانات والذي قمت بإنشاءة في الموقع ونستخدم آمر Call لكي ننادي على السيرفر الموجود داخل ExampleNewsResponse  وبعدها نضع الكلام هذا في ميثود وقم بتسميتها بأي اسم وهنا تمت تسميتها بإسم getNews وفوقها قم بعمل get لانك تريد الحصول على بيانات وضع بداخلها end point الرابط داخل اقواس كما بالصورة .



الان قم بإنشاء كلاس جديد بإسم RetrofitClient وبداخله قم بعمل private static للـ Retrofit وبعدها قم بعمل ميثود تتصل بإسم interface الذي قمنا بإنشاءة وكان بإسم Api وتقوم بعمل ميثود له , داخل الميثود قم اولا بعمل اختبار هل يوجد محتوى ام لا اذا كان الجوب نعم سنقوم بعمل return retrofit لنقوم بإستدعاء السيرفر مباشرة واذا لم يكون هناك محتوى سنقوم بعمل retrofit وبعدها Builder ليقوم ببنائها وبعدها baseUrl ونضع بداخله اول الرابط او بمعنى الرابط الموجود قبل end point بعدها addConverterFactory ليقوم بتحويل الاكواد من Gson وهذة الفانكشن مسؤوله عن عرض البيانات وايضا معرفة هل يوجد اخبار ام لا .



الان ارجع الى MainActivity او الصفحة التي تريد عرض بها المحتويات اولا قم بعمل logt في الاعلى لمعرفة الاخطاء وايضا مايجري في تطبيقك , واسفل onCreate قم بتعريف كلاس RetrofitClient وهو عن طريق كتابة اسمة ثم الميثود التي بداخله ثم  وستجد ظهور 2 فانكشن الاولى response وهي اذا كانت العملية ناجحة والاخرى onFailure اذا كانت العملية فاشلة , اذا كانت فاشلة سوف تقوم بعمل logi وطباعة المشكلة للمستخدم وللمطور واذا كانت العملية ناجحة سوف سوف نقوم بالتاكد ان response ناجح و غير فارغ اذا نجحت سوف ناخذ body من كلاس ExampleNewsResponse ونقوم بعمل فور لوب وبداخلها نريد ان نعرض المحتويات وهي موجوده في Article لذلك نقوم بكتابة اولا اسم الكلاس ثم ناخذ منة اوبجكت وبعدها نضع : ثم exampleNewsResponse نحضر منها article عن طريق getArticles ونعرضها الان بشكل مؤقت داخل Log.i 



اخر خطوة ارجع الى manifest وقم بعمل permission للانترنت والواي فاي والشبكة لانة يجب ان يكون هاتفك متصل بالانترنت لكي تحصل على بيانات , يتم اضافتهم اسفل package.



الان جرب ان تقوم بعمل run للكود , وستلاحظ ظهور البيانات في logcat .


لمزيد من الاكواد

تعليقات