چطوری خودمون رو از شر ساختن داده‌های Fake راحت کنیم ؟

استاندارد

یه چیز که خیلی خیلی من رو توی روند انجام پروژه‌ها اذیت میکرد همزمان نبودن پیاده‌سازی بخش کلایت و سرور بود . بطور مثال ما تو جلسات فنی ساختار داده‌ها و وب‌سرویسهایی که لازم بود رو با وب‌سرویس نویس مشخص میکردیم ولی به هر دلیلی این وب‌سرویس‌ها تو زمان پیاده‌سازی کلاینت‌ها آماده نمیشد یا با تاخیر آماده میشدند و این موضوع باعث این میشد که من برای پیاده‌سازی بخش‌هایی از کلاینت مجبور بشم تا توابعی رو در داخل اپلیکیشن بنویسم که داده‌های غیر واقعیی با ساختار درست و مشخص شده رو تولید کنه ، تا امکان تست اولیه کدهام در روند پیاده‌سازی رو داشته باشم .
چون این کار همیشه برای من جزو کارهای حوصله سر بر و کسل کننده بود ، باعث شد کمی جستجو کنم تا ببینم راه حلی برای انجام دادن این کار به صورت غیر حوصله سر بر هست یا نه . که خوشبختانه راه حلی به اسم JsonServer  وجود داشت .
JsonServer یک REST API برای تولید داده‌های غیر واقعیی بر روی localhost هست که با استفاده از یک فایل Json که بهش داده میشه کار میکنه . کافی این فایل Json دقیقا ساختار داده‌ای پروژه‌تون رو داشته باشه تا شما بتونید با توابع GET , POST , PUT , DELET , PATCH که json server در اختیارتون میذاره ، با صرف کمترین زمان از وب‌سرویس‌های مورد نظرتون داخل اپلیکیشنتون استفاده کنید . تو ادامه با یه مثال سعی میکنم نحوه عملکرد json server رو براتون بیشتر توضیح بدم .

اول بریم سر نصب این برنامه ، اگه با مک یا لینوکس کار میکنید و node رو روی سیستمتون ندارید ، برای قدم اول لازمه node روی سیستمتون نصب کنید .
دستور نصب node در ترمینال با پکیج منیجر homebrew برای مک : brew install node

بعد از اون میرسیم به نصب خود json-server ، برای این کار فقط کافی که تو ترمینالتون دستور زیر رو اجرا کنید و کمی هم صبر و تحمل به خرج بدید .
دستور نصب  npm install -g json-server  :  json server

خب بریم سر نحوه استفاده :

فرض کنید که برای موجودت‌های Profile و Products نیاز به یکسری وب‌سرویس داریم . فایل json به اسم db.json که در زیر نوشته شده ، شامل لیستی از چند Profile و یک لیست از Products ها هست .

کاری که ما  باید انجام بدیم اینه که این فایل رو به عنوان پارامتر به json-server بفرستیم تا اون بقیه کارا رو برای ما انجام بده . پس به دایرکتوریی که فایل json مون تو اون قرار داره میریم و دستور json-server db.json رو توی ترمینالمون اجرا میکینم . بعد از این مرحله میتونیم با استفاده از متد GET بر روی ادرس localhost:3000/profile لیست profile های مورد نظرمون رو دریافت کنیم . همچنین میتونیم با فرستادن شماره id در ریکوئست ، پروفایل مورد نظرمون رو در جواب دریافت کنیم  ، مثال localhost:3000/profile/1 . همینطور با استفاده از متدهای دیگه مثل ‌PUT , DELETE , POST هم میتونیم عملیاتهای اضافه ، حذف و تغییر رو بر روی داده‌های موجود تو فایل json مون اعمال کنیم . لازمه که این رو هم بگم که این تغییراتی رو که ما در فایل json به وسیله json-server اعمال میکنیم فقط در صورتی اعمال خواهند شد که قبل از بستن اون ، دستور s رو در ترمینال اجرا کنیم .

تو این پست بخش کوچیکی از قابلیتای json-server رو براتون گقتم ، اگه میخواید راجع‌به بقیه کارهایی که این برنامه در اختیارتون میذاره بدونید میتونید به صفحه این پروژه توی گیت‌هاب یه سر بزنید .

نکته : اگه از genymotion برای تست‌هاتون استفاده میکنید یادتون باشه به جای http://localhost:3000  از http://10.0.3.2:3000 استفاده کنید .