رهام رفیعی تهرانی
رهام رفیعی تهرانی
خواندن ۲ دقیقه·۱ سال پیش

آشنایی با In Memory Web API در انگولار


شرایطی رو فرض کنید که شما همه کارهای سمت فرانت رو انجام دادید ولی 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، دیتای تستی رو به شکل زیر پیاده میکنیم:

الان دو آدرس شبیه سازی شده داریم

  • api/heroes
  • api/users

گام سوم: اضافه کردن ماژول InMemoryWebAPI به ماژول اصلی اپ

داخل app.module.ts ، ماژول InMemoryWebAPI رو تعریف میکنیم. سرویسی رو که در گام دوم ساختیم بهش معرفی میکنیم:


حالا فقط کافیه ng serve رو صدا بزنیم و یکی از آدرس های شبیه سازی شده رو صدا کنیم:

دیتا های شبیه سازی شده رو دریافت میکنیم و کار تمومه.


موفق باشید :)

angularانگولارrestfulrestful apiapi
برنامه نویسی یک شغل نیست، یک هنره.
شاید از این پست‌ها خوشتان بیاید