دسترسی به Api هایREST  قسمت اول

به نام خدا،در ادامه مبحث مربوط به برنامه نویسی شبکه در اندروید امروز میخواهیم با دسترسی ب Api های REST آشنا شویم. REST  که مخفف Representational State Transfer میباشد یک معماری وب سرویس است که از HTTP برای انتقال اطلاعات میان کلاینت و سرور استفاده میکند کار کردن با REST بسیار ساده تر از وب سرویس های پیچیده ای مانند SOAP میباشد. یک سرویس به اصطلاح RESTful عموما بر روی پروتکل HTTP و تمام افعال استاندارد این پروتکل را که توسط مرورگرهای وب قابل درک هستند کار میکند مانند (GET, POST, PUT, DELETE).

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

یک وب سرویس REST دارای مشخصات زیر است:

بوسیله URI کار میکند یعنی ریسورس ها و کالکشن های خود را به صورت http://example.com/resources دریافت میکند اطلاعات را به صورت عموما JSON دریافت میکند البته میتواند اطلاعات به صورت XML هم برگردانده شود برخلاف وب سرویس های برپایه SOAP هیچ استاندارد رسمی برای وب سرویس های REST وجود ندارد به دلیل اینکه REST یک معماری است در حالی که SOAP یک پروتکل وب سرویس است.

برای دریافت و ارسال از طریق http  روی شبکه ، اندروید دو راه فراهم کرده است : http client اپاچی :http urlconnection جاوا. نکته ی اصلی برای انتخاب هریک از دو راه ، نسخه ی اندرویدی است که اپلیکیشن شما از ان پشتیبانی می کند.

(API سطح 3)

اگر قرار است اپلیکیشن شما برای نسخه های پایین اندروید باشد ، از کلاس های http  اپاچی در یک  async task استفاده  کنید. اندروید شامل کتابخانه ی کامپوننت های http اپاچی است، که می توان از ان ها برای اتصال به api ها remote استفاده کرد. در این کتابخانه کلاس هایی برای ساخت در خواست هایی، get، post، put، delete وجود دارد :هم چنین پشتیبانی از  {ssl {layer secure sockets ، حافظه ی cookie و سایر در خواست هایی که ممکن است http client در خود داشته باشد را کنترل می کند.مزیت دیگری که استفاده از این شیوه دارد ، سطح انتزاعی بودن عملیات در این کتابخانه است. در بیشتر مواقع برای انجام بسیاری از کارهای شبکه ، تنها به کد کوچکی نیاز است . بخش اعظمی از کدهای سطح پایین لازم جهت انجام کار ، بر عهده توسعه دهنده نیست و کتابخانه به ان ها رسیدگی می کند

اما کتابخانه و روش مذکور ، یک عیب بزرگی دارد . نسخه ای از کامپوننت های اپاچی که در اندروید قرار داده شده است ، شامل multi partentity نمی شود. این کلاس برای عملیات باینری یا فرم های چند بخش در درخواست های post ، ضروری است . اگر در اپلیکیشن به این کلاس نیاز دارید و مصر به استفاده از http client هستید ، باید یک نسخه ی جدید تر از کتابخانه کامپوننت ها را به عنوان یک jar خارجی به پروژه وارد کنید ..

(API سطح 9)

از کلاس http urlconnection درون یک async task استفاده کنید. این کلاس از نخستین فریم ورک اندروید ، api سطح 1 ، بخشی از ان بوده است اما از اندروید 2.3 به عنوان راه پیشنهادی برای عملیات i/o شبکه معرفی شد. دلیل ان نیز وجود برخی اشکالات جزیی در پیاده  سازی بود که در نتیجه http client را انتخاب مناسب تری قلمداد می کرد . در هر صورت با گذشت زمان ، تیم اندروید تغییرات و تحولات مثبتی در http url connection ایجاد کردند که اکنون می توان از ان با اسودگی خاطر و به عنوان پیاده سازی پیشنهادی استفاده کرد .بزرگترین مزیت http URL Connection ، کارایی ان است . کلاس های ان سبک هستند و نسخه های جدید اندرویدی امکاناتی از قبیل فشرده سازی را شامل می شوند.  هم چنین api ان سطح پایین تر است که عمومیت استفاده از ان را افزایش می دهد و هر نوع تراکنش ممکن http را پیاده سازی می کند. شاید نکته منفی ان را بتوان نیاز به کد نویسی بیشتر از سوی توسعه دهنده بیان کرد.

در قسمت های آتی از این آموزش با http client,GET,post ,http urI connection آشنا خواهیم شد.

 

عناوین دوره های رایگان آموزشی کار با شبکه و ارتباطات در برنامه نویسی اندروید:

1.پاسخ به رویداد های WebVeiw

2.دسترسی به وب ویو با استفاده از جاوااسکریپت

3.دانلود و نمایش یک عکس از اینترنت

4.دانلود و نمایش بیش از یک عکس از اینترنت

5.دانلود و نمایش یک فایل متنی

6.دسترسی به API های REST

7.ترجمه عبارت های JSON

8.ترجمه XML

9.انتقال داده از طریق NFC

10.برنامه نویسی سوکت

11.ساخت برنامه هواشناسی


فایلهای ضمیمه
توجه! هیچ فایل ضمیمه ای برای این مطلب یافت نشد

نظرات شما نظر جدید
سایر مقالات این دسته
تاریخچه و خصوصیات اندرویداجزای تشکیل دهنده سیستم عامل اندرویدآشنایی با API های اندرویدایجاد،ساخت و اجرای اولین برنامه اندرویدیکار با دکمه ها در اندرویدکار با تکست باکس ها در اندرویدکار با تکست ویو در اندرویدکار با گرید ویو در اندرویدکار با وب ویو در اندرویدکار با اسکرول ویو در اندرویدکار با اسکرول ویو افقیکار با الرت دیالوگ (AlertDialog)در اندرویدکار با ایمیج باتن(Image Button) در اندرویدکار با توگل باتنکار با چک باکس (Checkbox) در اندرویدکار با الرت دیالوگ (AlertDialog)در اندروید قسمت دوکار با ریتینگ بار(Rating bar) در اندرویدرفتن از یک اکتویتی به اکتویتی دیگرکار با نوتیفیکیشن ها (Notifications )در اندرویدکار با صوت در برنامه نویسی اندرویدکار با ویبره(Vibrator) در اندرویدکار با دوربین در اندرویدکار با دوربین در اندرویدکار با ویدیو ویو (VideoView)در اندرویدکار با شبکه وای فای (Wifi)در اندرویدکار با لیست ویو (ListView) در اندرویدکار با سیک بار (SeekBar) در اندرویدکار با دکمه بازگشت در اندرویدکار با AutoCompleteTextView در اندرویدتغییر فونت در اندرویدکار با لایه TableLayout در اندرویدکار با لیست کشویی (Spinner) در اندرویدکار با CalendarView در اندرویدساخت شمارنده در اندرویدکار با title bar در اندرویدکار با منو (Menu)در اندرویدکار با لیست ویو (Listview) قسمت دومطراحی رابط کاربری در اندروید قسمت اولطراحی رابط کاربری در اندروید قسمت دوم(طراحی گرد)کار با استایل در اندرویدکار با لایه AbsoluteLayout در اندرویدطراحی رابط کاربری در اندروید کار با gradientکار با کلیپ بورد(ClipBoard)در اندروید کار با مولتی تاچ(Multitouch ) در اندروید+سورس کدکار با OnLongClick در اندرویدکار با منوی زمینه (ContextMenu ) در اندرویدکار با حرکات (Gesture) در اندرویدکار با (AudioCapture) در اندروید+سورس کدکار با موتور Speech در اندروید + سورسکار با PhoneCall در اندرویدساخت لیست ویو سفارشی در اندروید+سورسساخت Toastسفارشی در اندرویدانتقال برنامه به حافظه sdکار با TextWatcher در اندروید+سورستغییر رنگ محیط Eclipse طراحی رابط کاربری در اندروید کار با Canvasساخت اکشن بار سفارشی در اندروید+سورسساخت الرت دیالوگ سفارشی در اندرویدساخت برنامه نمایش مقدار شارژ باتری در اندرویدایجاد افکت رنگی بروی تصاویر در اندروید+سورسساخت آپشن منوی سفارشی در اندروید+سورسساخت دکمه سه بعدی با Selectorسخنان بزرگان برنامه نويسيوارد كردن پروژه در محيط ايكليپساضافه کردن switch,case به لیست ویوبارش برف بروی تصویر + سورسکار با فیلتر hue رنگی کردن تصویر انتخاب و پخش فایل صوتی از حافظه گوشی+سورساضافه کردن چک باکس به لیست ویوکار با ShelfView یا نمایش کتابخانه ای + سورسکار با TabHost،اضافه کردن تب به برنامه های اندرویدآموزش کامل ساخت اکشن بار سفارشی+سورسساخت برنامه های واکنش گرا(ریسپانسیو) در اندرویدقسمت دوم صفحات 7 اینچ به بالااضافه کردن انیمیشن به دکمه+سورسکار با View Switcher در اندروید + سورسکار با فیلتر Blur Mask + سورسدانلود پک کامل آیکون های طراحی اندرویدکار با sharedPreferences در اندروید+سورسآموزش کار با proguard،محافظت از برنامه اندرویدپخش فایل صوتی (MP3) از ادرس اینترنتی+سورسپخش ویدیو از آدرس اینترنتی(URL) در اندروید+سورسگوشی های و تبلت های مطرح تا چینی به ساده ترین روشپاسخ به رویداد های WebVeiw دسترسی به وب ویو با استفاده از جاوااسکریپتکار با WIFI اکسس+سورسساخت تقویم هجری برای اندروید+سورسapp rateدانلود و نمایش تصویر در ListView+سورسدانلود و نمایش فایل متنی+سورسکار با کلاس های پایه اکتیویتیآینه کردن تصویر+سورسافزودن آیتم منو سفارشی بهActionBar+سورسارسال اطلاعات از دیتابیس به GridView + سورسدسترسی به Api هایREST قسمت اولتغییر فونت لیست ویوفعال سازی و معرفی بخش های Android developer options بخش اول کار با JSON در اندرویدآموزش ساده نصب شبیه ساز اندروید Genymotion