یه چیز که خیلی خیلی من رو توی روند انجام پروژهها اذیت میکرد همزمان نبودن پیادهسازی بخش کلایت و سرور بود . بطور مثال ما تو جلسات فنی ساختار دادهها و وبسرویسهایی که لازم بود رو با وبسرویس نویس مشخص میکردیم ولی به هر دلیلی این وبسرویسها تو زمان پیادهسازی کلاینتها آماده نمیشد یا با تاخیر آماده میشدند و این موضوع باعث این میشد که من برای پیادهسازی بخشهایی از کلاینت مجبور بشم تا توابعی رو در داخل اپلیکیشن بنویسم که دادههای غیر واقعیی با ساختار درست و مشخص شده رو تولید کنه ، تا امکان تست اولیه کدهام در روند پیادهسازی رو داشته باشم .
چون این کار همیشه برای من جزو کارهای حوصله سر بر و کسل کننده بود ، باعث شد کمی جستجو کنم تا ببینم راه حلی برای انجام دادن این کار به صورت غیر حوصله سر بر هست یا نه . که خوشبختانه راه حلی به اسم 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 ها هست .
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ |
{ "profile":[ { "id":۱, "name": "soroush", "email": "soroushjavdan@gmail.com" }, { "id":۲, "name": "tester1", "email": "tester1@gmail.com" }, { "id":۳, "name": "tester2", "email": "tester2@gmail.com" } ], "product":[ { "id":۳, "productName": "iphone6s", "price": "۲۵۰۰۰۰۰" } ] } |
کاری که ما باید انجام بدیم اینه که این فایل رو به عنوان پارامتر به json-server بفرستیم تا اون بقیه کارا رو برای ما انجام بده . پس به دایرکتوریی که فایل json مون تو اون قرار داره میریم و دستور json-server db.json رو توی ترمینالمون اجرا میکینم . بعد از این مرحله میتونیم با استفاده از متد GET بر روی ادرس localhost:3000/profile
لیست profile های مورد نظرمون رو دریافت کنیم . همچنین میتونیم با فرستادن شماره id در ریکوئست ، پروفایل مورد نظرمون رو در جواب دریافت کنیم ، مثال
. همینطور با استفاده از متدهای دیگه مثل PUT , DELETE , POST هم میتونیم عملیاتهای اضافه ، حذف و تغییر رو بر روی دادههای موجود تو فایل json مون اعمال کنیم . لازمه که این رو هم بگم که این تغییراتی رو که ما در فایل json به وسیله json-server اعمال میکنیم فقط در صورتی اعمال خواهند شد که قبل از بستن اون ، دستور localhost:3000/profile/1
s
رو در ترمینال اجرا کنیم .
تو این پست بخش کوچیکی از قابلیتای json-server رو براتون گقتم ، اگه میخواید راجعبه بقیه کارهایی که این برنامه در اختیارتون میذاره بدونید میتونید به صفحه این پروژه توی گیتهاب یه سر بزنید .