شرایطی رو فرض کنید که شما همه کارهای سمت فرانت رو انجام دادید ولی API ها هنوز نرسیدند. شما میخواید اپ تون رو تست کنین. راه های مختلفی برای شبیه سازی API هست که من به سه روش اشاره میکنم:
۱. تنظیم پروکسی
۲. راه اندازی سرور فیک
۳. تعریف HTTP Inerceptor و جواب دادن به API ها داخل اپ
من شخصا همیشه از روش سوم استفاده میکنم. اما امروز میخوام یک پکیج معرفی کنم به اسم In Memory Web API که قراره برامون CRUD رو شبیه سازی کنه. در واقع این پکیج هم از HTTP Interceptor استفاده میکنه. راه حل آماده ایه و فقط کافیه نصبش کنیم و دیتا رو بریزیم داخلش تا برامون API رو شبیه سازی کنه.
بریم این ماژول رو نصب کنیم و ازش استفاده کنیم.
پکیج رو صرفا برای development نصب میکنیم. برای همین از save-dev استفاده میکنیم:
سرویس دیتامون رو به صورت زیر می نویسیم:
یک سرویس با اسم دلخواه میسازیم که InMemoryDbService رو پیاده سازی میکنه. داخل تابع CreateDb یک آبجکت برمیگردونیم که شامل یک property بنام heroes هست که مقدارش، لیستی از دیتاهاست. ماژول InMemoryWebAPI برای ما یک CRUD از heroes شبیه سازی میکنه که میتونیم با آدرس api/heroes صداش کنیم و دیتاها رو بگیریم یا آپدیت کنیم یا بسازیم یا یک آیتم رو حذف کنیم.
اگر بخوایم برای دو مدل دیتا CRUD بسازیم، مثلا heroes و users، دیتای تستی رو به شکل زیر پیاده میکنیم:
الان دو آدرس شبیه سازی شده داریم
داخل app.module.ts ، ماژول InMemoryWebAPI رو تعریف میکنیم. سرویسی رو که در گام دوم ساختیم بهش معرفی میکنیم:
حالا فقط کافیه ng serve رو صدا بزنیم و یکی از آدرس های شبیه سازی شده رو صدا کنیم:
دیتا های شبیه سازی شده رو دریافت میکنیم و کار تمومه.
موفق باشید :)