پیاده سازی کلاینت REST در اندروید (قسمت اول)

در سری مطالب قبلی با عنوان پیاده سازی سرویس RESTful بوسیله Slim در مورد پیاده سازی سرویس REST جهت ثبت و دریافت یاداشت ها با استفاده از PHP و فریم ورک Slim توضیحاتی داده شد، در این سری از مطالب قصد بر این هست که در طی مثال هایی ساده در قالب نمونه کد نحوه پیاده سازی یک کلاینت در سمت اندروید برای برقراری ارتباط با سرویس یاداشت ها توضیح داده شود.

و اما ابزار هایی که از آن ها استفاده خواهد شد، ما از Retrofit برای برقراری ارتباط با سرور و از ActiveAndroid به عنوان ORM استفاده میکنیم. IDE مورد استفاده ما در اینجا Android Studio هست که به تازگی از فاز پیش نمایش وارد بتا شده و از نظر استیبلیتی در شرایط بهتری قرار گرفته.

همانطور که قبلا ذکر شده، در مطالب این وبلاگ، قصد بر این است که از ورود به جزییات تا جای ممکن اجتناب شود، از این نظر شاید برخی مطالب و مواردی که به اون ها اشاره خواهد شد برای دوستان تازه کارتر نا آشنا و برای دوستانی که در سطوح متوسط تا پیشرفته قرار دارند مناسب تر باشد. البته در صورت لزوم میتوانید در این موارد، سوال مطرح کنید و تا حد امکان سعی در پاسخ به سوالات شما خواهم داشت.

ابتدا در Android Studio یک پروژه جدید به صورت خالی ایجاد میکنیم. همانطور که اطلاع دارید، اندروید استدیو به صورت پیشفرض از Gradle استفاده می کند، به همین دلیل ابتدا می بایست دیپندنسی های مورد استفاده در پروژه را در فایل build.gradle مشخص کنیم.

اولین دیپندنسی ما در این پروژه Retrofit است، در زمان نگارش این مطلب نسخه 1.6.1 از آن در دسترس است و می توانیم از طریق کد زیر در فایل build.gradle آن را به پروژه اضافه کنیم.

متاسفانه تا این لحظه نسخه ای از ActiveAndroid در مخازن موجود نیست به هیمن دلیل می بایستی دیپندنسی دوم را به صورت فایل jar به پروژه اضافه کنیم.

برای استفاده از آخرین نسخه ActiveAndroid میبایستی به سایت آن در این آدرس مراجعه و پس از دریافت آخرین نسخه، فایل jar را ایجاد و به پوشه libs در دایرکتوری استراکچر پروژه منتقل نمایید.

سپس، پس از اضافه کردن ActiveAndroid می بایستی با اضافه کردن کد زیر به فایل مانیفست، نام و نسخه دیتابیس مورد استفاده را مشخص کنیم.

در قدم بعد می بایست کلاس جدیدی با نام Note.java که از کلاس Model در ActiveAndroid اکستند می شود را برای تعامل با دیتابیس SQLite از طریق ActiveAndroid ایجاد کنید.

همانطور که در کد بالا مشاهده میکنید، انوتیشن های مورد استفاده در ActiveAndroid کار را برای ما تا حدود زیادی ساده می کنند. در کد بالا ما از طریق انوتیشن های Table و Column جدول و فیلد های مورد نیاز خود را تعریف میکنیم.

Retrofit به صورت پیشفرض از پکیح Gson استفاده می کند. اگر توجه داشته باشید انوتیشن SerializedName در کد بالا برای ما این امکان را فراهم میکند تا مقدار شناسه دریافتی از سرور را به متغییری جدا گانه ارسال کنیم. همچنین از طریق Expose فیلد هایی که مایل به استفاده توسط Gson هستیم را مشخص میکنیم.

استفاده از Retrofit برای برقراری ارتباط با سرویس REST ما بسیاز آسان خواهد بود. در ادامه مطابق کد زیر یک اینترفیس جاوا با نام RestService ایجاد کنید.

در کد از طریق انوتیشن های Retroft هر کدام از متد های اینترفیس را به یکی از متد های HTTP ارتباط می دهیم. به عنوان مثال از طریق متد noteIndex در کد بالا می توانیم با ارسال ریکوئستی با متد GET به وب سرویس، فهرست کلیه یاداشت های موجود را در قالب لیستی متشکل از آبجکت های Note دریافت کنیم.

در مرحله بعد، می بایستی سرویس REST از طریق RestAdapter و اینترفیس بالا پیاده سازی شود. برای تصحیل دسترسی به این سرویس یک کلاس جدید با عنوان RestHelper و محتوای زیر ایجاد کنید.

در کلاس بالا و از طریق پیاده سازی به صورت متد استاتیک، سرویس REST به سادگی از هر جا قابل فراخوانی و دسترس خواهد بود.

در اینجا قسمت اول این سری مطلب به پایان میرسد. در این قسمت در طی مثال های ارایه شده نحوه پیاده سازی پیش نیاز ها و اضافه کردن دی پندنسی ها توضیح داده شد، چنانچه سوالی مطرح بود لطفا از طریق قسمت تماس، نظرات و یا شبکه های اجتماعی در تماس حاصل نمایید.

 

1 پاسخ
  1. زیتون
    زیتون says:

    سلام ببخشید من می خوام ی صفحه ای درست کنم که نام کاربری و پسورد رو بگیرد و به سمت سرور چک کند در صورت درست بودن صفحه بعد برود و با asytaskانجام می شه توضیحی بهم بدید.
    تشکر

    پاسخ

دیدگاه خود را ثبت کنید

Want to join the discussion?
Feel free to contribute!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

This site uses Akismet to reduce spam. Learn how your comment data is processed.