کار با شبکه در فلاتر | به زبان ساده

قبل از هر چیز، کدام REST API؟
شروع Retrofit
فرض میکنیم شما از قبل یک پروژه فلاتر دارید که آن را راهاندازی و اجرا کردهاید. در این بخش نخستین وابستگی را به فایل pubspec.yaml اضافه میکنیم تا کلاینت API خود را راهاندازی کنیم:
dependencies: dio: 3.0.9 retrofit: 1.3.4 dev_dependencies: retrofit_generator: 1.3.4+1 build_runner: 1.9.0
- Dio کلاینت Http ما است که اتصال را برای ما مدیریت میکند.
- Retrofit یک کلاینت Dio است که مصرف API-های REST را برای ما آسانتر میسازد.
- Build runner برای تولید کد در Dart استفاده میشود و جدا از pub است.
پس از اجرای دستور زیر میتوانید شروع به تنظیم کردن کلاینت بکنید:
flutter pub get
در ادامه یک کلاس جدید اضافه کرده و آن را به صورت RestApi با یک URL مبنا از طریق یک «حاشیهنویسی» (annotation) تعریف میکنیم.
- فایل ow_api.dart
به بخش part در زیر ایمپورتها توجه کنید. این بخش به منظور تولید کد استفاده میشود. در ادامه دستور زیر را اجرا میکنیم:
flutter packages pub run build_runner build
به این ترتیب از build runner استفاده میکنیم و کد را برای کلاینت خود در کلاسی که در part تعریف شده است، تولید خواهیم کرد. زمانی که بیلد رانر پایان یافت، آن را در همان پکیج به صورت کلاس API مشاهده میکنید. اینک تنظیم کلاینت API پایان یافته است.
تجزیه JSON: تعریف مدل
کار خود را با تعریف کردن مدل پاسخ پیش از پیادهسازی عملی فراخوانی API اول آغاز میکنیم.
ما روی پاسخ کامل این مثال تمرکز نمیکنیم، بلکه به جای آن به بخشی توجه خواهیم کرد که شامل دمای کنونی است:
بنابراین اکنون میدانیم که قرار است چیزی دریافت کنیم. در ادامه یک وابستگی برای شروع تجزیه پاسخ JSON اضافه میکنیم:
json_serializable: 3.3.0
اینک میتوانیم دست به کار ایجاد برخی کلاسها برای نمایش پاسخ بکنیم. کار خود را از کلاس پاسخ وضعیت آبوهوا آغاز میکنیم و کلاس دیگری برای بلوک اصلی میسازیم. کافی است هر فیلد را پیادهسازی کرده و کلاس را با ()JsonSerializable@ آغاز کنیم.
کافی است build runner را اجرا کنیم تا بتوانیم دمای کنونی را از پاسخ کنونی تجزیه کنیم.
افزودن فراخوانی API نخست
اینک به کلاینت خودمان بازمیگردیم. ما قصد داریم از یک درخواست GET برای واکشی دمای کنونی استفاده کنیم.
با مراجعه به مستندات API میبینیم که باید برخی هدرها را به درخواست خود اضافه کنیم و همچنین یک پارامتر کوئری برای موقعیت مکانی مورد تقاضا داشته باشیم. خوشبختانه Retrofit اجرای این کار را برای ما بسیار آسان ساخته است.
تعریف کردن هدرها برای هر فراخوانی یک کار تکراری است و از این رو باید Dio را طوری پیکربندی کنید که همه کارهای عمومی را تا حد امکان شامل شود.

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













خیلی ممنون بسیار مفید بود
لطفا از این دسته مقالات فلاتری بیشتر بذارید