دسترسی به REST API در برنامه نویسی فلاتر 

4 سال پیش
امتیاز دهید post

دسترسی به REST API در برنامه نویسی فلاتر 

در این درس از آموزش های برنامه نویسی سایت سورس باران، در مورد دسترسی به REST API در برنامه نویسی فلاتر صحبت می کنیم.

فلاتر پکیج http را برای مصرف منابع HTTP فراهم می کند. http یک کتابخانه مبتنی بر آینده است و از ویژگی های انتظار و همگام سازی استفاده می کند. این روش های سطح بالایی را فراهم می کند و توسعه برنامه های تلفن همراه مبتنی بر REST را ساده می کند.

مفاهیم کلی 

پکیج http یک کلاس سطح بالا و http را برای انجام درخواست های وب فراهم می کند.

کلاس http قابلیت انجام انواع درخواست های HTTP را فراهم می کند.

متد های http یک آدرس اینترنتی و اطلاعات اضافی را از طریق نقشه دارت می پذیرند (داده های ارسال، عناوین اضافی و غیره.). از سرور درخواست می کند و پاسخ را با الگوی async/await جمع می کند. به عنوان مثال، کد زیر داده ها را از آدرس اینترنتی مشخص شده خوانده و آنها را در کنسول چاپ می کند.

برخی از متد های اصلی به شرح زیر است –

  • url  -read مشخص شده را از طریق روش GET درخواست کنید و پاسخ را به عنوان <Future <String برگردانید
  • url  -get مشخص شده را از طریق روش GET درخواست کنید و پاسخ را به عنوان <Future <Response برگردانید. پاسخ کلاسی است که اطلاعات پاسخ را در خود نگه می دارد.
  • post – با ارسال داده های ارائه شده، آدرس url مشخص شده را از طریق POST درخواست کنید و پاسخ را به عنوان <Future <Response>برگردانید
  • put – آدرس url مشخص شده را از طریق روش PUT درخواست کنید و پاسخ را به عنوان Future <Response> برگردانید
  • head– آدرس url مشخص شده را از طریق روش HEAD درخواست کرده و پاسخ را به عنوان <Future <Response برگردانید
  • delete – آدرس url مشخص شده را از طریق روش DELETE درخواست کرده و پاسخ را به عنوان <Future <Response برگردانید

http همچنین یک کلاس استاندارد HTTP کلاینت ارائه می دهد. کلاینت از اتصال مداوم پشتیبانی می کند. هنگامی که درخواست زیادی از یک سرور خاص درخواست شود مفید خواهد بود. با استفاده از روش بستن باید به درستی بسته شود. در غیر این صورت، شبیه کلاس http است. کد نمونه به شرح زیر است –

 

دسترسی به سرویس خدمات API

اجازه دهید یک برنامه ساده ایجاد کنیم تا داده های محصول را از یک وب سرور دریافت کنیم و سپس محصولات را با استفاده از ListView نشان دهیم.

  • یک برنامه جدید Flutter در Android studio ، product_rest_app ایجاد کنید.
  • کد راه اندازی پیش فرض (main.dart) را با کد product_nav_app  جایگزین کنید.
  • پوشه assets را از Product_nav_app در Product_rest_app کپی کرده و assets را در داخل فایل pubspec.yaml اضافه کنید.

 

همانطور که در زیر نشان داده شده، پکیج http را در فایل pubspec.yaml پیکربندی کنید –

 

در اینجا، ما از آخرین نسخه پکیج http استفاده خواهیم کرد. Android studio هشدار پکیجی را ارسال می کند که pubspec.yaml به روز شده است.

Latest Version

گزینه دریافت وابستگی ها را کلیک کنید. Android studio پکیج را از اینترنت دریافت کرده و به درستی برای برنامه پیکربندی می کند.

پکیج http را در پرونده main.dart وارد کنید –

 

همانطور که در زیر نشان داده شده است، یک فایل جدید JSON ، products.json با اطلاعات محصول ایجاد کنید

 

یک فایل جدید ایجاد کنید، JSONWebServer و فایل JSON ، products.json را قرار دهید.

هر وب سروری را با JSONWebServer به عنوان دایرکتوری اصلی خود اجرا کنید و مسیر وب خود را دریافت کنید. به عنوان مثال:

  • http://192.168.184.1:8000/products.json. ما می توانیم از هر سرور وب مانند apache ، nginx و غیره استفاده کنیم ،
  • ساده ترین راه نصب برنامه مبتنی بر گره http-server است. برای نصب و اجرای برنامه سرور http مراحل زیر را دنبال کنید
  • برنامه Nodejs را نصب کنید (nodejs.org)
  • به پوشه JSONWebServer بروید.

  • بسته سرور http را با استفاده از npm نصب کنید.

  • اکنون، سرور را اجرا کنید.

 

  • یک فایل جدید ، Product.dart در پوشه lib ایجاد کرده و کلاس Product را به داخل آن منتقل کنید.
  • یک سازنده کارخانه را در کلاس Product ، Product.fromMap بنویسید تا نقشه برداری داده را به شی Product تبدیل کند. به طور معمول، فایل JSON به شی دارت نقشه تبدیل شده و سپس به شی مربوطه تبدیل می شود (محصول).

 

کد کامل Product.dart به شرح زیر است –

 

برای واکشی و دانلود اطلاعات محصول از سرور وب در لیست List <Product> دو روش – تجزیه محصولات و واکشی محصولات – در کلاس اصلی بنویسید

 

به نکات زیر در اینجا توجه کنید –

  • Future برای  lazy load اطلاعات محصول استفاده می شود. Lazy loading مفهومی برای به تعویق انداختن اجرای کد تا زمان ضرورت است.
  • http.get برای واکشی داده ها از اینترنت استفاده می شود.
  • json.decode برای رمزگشایی داده های JSON در شی دارت استفاده می شود. پس از رمزگشایی داده های JSON ، با استفاده از از نقشه کلاس Product به لیست <Product> تبدیل می شود.
  • در کلاس MyApp، متغیر عضو جدید محصولات از نوع <Future <Product اضافه کنید و آن را در سازنده قرار دهید.

 

  • در کلاس MyHomePage، محصولات متغیر عضو جدید را از نوع <Future <Product= اضافه کرده و در سازنده قرار دهید. همچنین، متغیر موارد و متد مربوط به آن را حذف کنید، فراخوانی متد getProducts. قرار دادن متغیر محصولات در سازنده این امکان را برای شما فراهم می کند تا هنگام شروع برنامه، محصولات را فقط یک بار از اینترنت واکشی کنید.

 

  • گزینه (Home (MyHomePage را در روش ساخت ویجت MyApp تغییر دهید تا تغییرات بالا را در خود جای دهید –

 

  • تابع اصلی را تغییر دهید تا شامل آرگومانهای <Future <Product شود –

 

برای ایجاد لیست محصولات در صفحه اصلی ، یک ویجت جدید ProductBoxList ایجاد کنید.

 

توجه داشته باشید که ما از همان مفهوم استفاده شده در برنامه پیمایش برای لیست محصولات استفاده کردیم، به جز اینکه با عبور محصولات (شی) از نوع <List <Product به عنوان یک ویجت جداگانه طراحی شده است.

  • در آخر، روش ساخت ویجت MyHomePage را تغییر دهید تا اطلاعات محصول را به جای فراخوانی با متد عادی با استفاده از گزینه Future بدست آورید.

 

در اینجا توجه داشته باشید که ما از ویجت FutureBuilder برای ارائه ویجت استفاده کردیم. FutureBuilder سعی می کند داده ها را از ویژگی Future خود دریافت کند (از نوع <Future <List <Product>). اگر ویژگی Future داده ها را بازگرداند، ویجت را با استفاده از ProductBoxList ارائه می دهد، در غیر این صورت خطایی ایجاد می شود.

کد کامل main.dart به شرح زیر است:

 

در آخر برنامه را اجرا کنید تا نتیجه را ببینید. این همان مثال پیمایش خواهد بود، به جز اینکه داده ها از اینترنت به جای داده های استاتیک محلی، هنگام کدگذاری برنامه وارد می شوند.

منبع.

لیست جلسات قبل آموزش برنامه نویسی فلاتر

  1. معرفی برنامه نویسی فلاتر
  2. آموزش نصب فلاتر
  3. اصول ایجاد یک برنامه فلاتر در Android Studio
  4. معماری فریم ورک برنامه نویسی فلاتر
  5. مقدمه ای بر برنامه نویسی دارت
  6. مقدمه ای بر ویجت ها در برنامه نویسی فلاتر
  7. آموزش طرح بندی در برنامه نویسی فلاتر 
  8. ژست های حرکتی در برنامه نویسی فلاتر 
  9. مدیریت State در برنامه نویسی فلاتر
  10. آموزش انیمیشن در برنامه نویسی فلاتر
  11. آموزش نوشتن کد خاص اندروید در برنامه نویسی فلاتر
  12. آموزش نوشتن کد مخصوص IOS در برنامه نویسی فلاتر
  13. مقدمه ای بر پکیج ها در برنامه نویسی فلاتر 

 

امتیاز دهید post
0
برچسب ها :
نویسنده مطلب saber

دیدگاه شما

بدون دیدگاه