1. معرفی mock API server
2. موارد استفاده از mock server
3. پیاده سازی mock server در نرم افزار postman
1.3 روش های پیاده سازیmock server در postman
2.3 پیاده سازی و استفاده از mock server در postman از روی collection
4. نکات مهم در رابطه با ماک سرور postman
1.4 نحوه ساخت example
2.4 نحوه دریافت response های مختلف
با توجه به تعریف گروه stoplight:
A mock API server or mock server API imitates a real API server by providing realistic mock API responses to requests. They can be on your local machine or the public Internet. Responses can be static or dynamic, and simulate the data the real API would return, matching the schema with data types, objects, and arrays.
ماک سرور ابزاری است که رفتار واقعی وب سرور را برای درخواست های http, https شبیه سازی می کند و با توجه به request ارسال شده، response متناسب از قبل تعریف شده را بر می گرداند. برای انواع زبان های برنامه نویسی، ماک سرورهای مختلف پیاده سازی شده است که میتوان به صورت لوکال روی سیستم خود یا سرور راه اندازی کرد.
در لینک زیر لیست محبوب ترین ابزارهای ساخت ماک سرور بر اساس محبوبیت در github آورده شده است:
https://awesomeopensource.com/projects/mock-server
روش دیگر راه اندازی ماک سرور استفاده از نرم افزار postman می باشد. با توجه به 1. سادگی راه اندازی ماک سرور، 2.گستردگی استفاده از این ابزار و 3.وابسته نبودن به زبان برنامه نویسی خاصی برای راه اندازی ماک سرور، روز به روز به تعداد استفاده کنندگاه از postman برای ایجاد mock server اضافه می گردد.
Mock server به استفاده کنندگان از وب سرویس ها (clients) این امکان را می دهد تا در زمانی که سرویس ها آماده نیست یا بصورت کامل develop نشده اند، بتوانند از آن ها استفاده کنند و دچار وقفه (عموما درازمدت) در انجام کار خود نگردند. برای مثال در پیاده سازی یک سیستم نرم افزاری، توسعه دهندگان سمت فرانت اند نیاز دارند که از سرویس های احراز هویت استفاده نمایند در صورتی که ارائه این سرویس ها از سمت بک اند هنوز پیاده سازی نشده است. در این شرایط استفاده از mock server گزینه مناسبی است.
زمانی که به هر دلیلی سرور اصلی ارائه api از کار افتاد یا client به هر دلیلی به صورت مستقیم نمی خواهد از سرویس اصلی استفاده نماید، می تواند به عنوان سرور تست از ماک سرور استفاده نماید.
3.1 روش های پیاده سازیmock server در postman
در این روش بصورت اولیه mock-server ساخته می شود تا در آینده api ها یا collection api را برای آن تعریف کنیم.
در پیاده سازی به این نحو از request آماده ماک ساخته می شود.
ای سبک که پرکاربردترین روش می باشد، mock server از رویcollection موجود ساخته می شود. در ادامه ساخت mock server با این روش را ادامه میدهیم. اگرچه روش ساخت همه موارد بسیار مشابه یکدیگر می باشد اما جهت اطلاع از جزییات هر کدام می توانید به لینک زیر مراجعه نمایید.
https://learning.postman.com/docs/designing-and-developing-your-api/mocking-data/setting-up-mock
3.2 پیاده سازی و استفاده از mock server در postman از روی collection
1. ابتدا پوشه کالکشن خود را انتخاب کنید و گزینه create new mock server را انتخاب کنید (مطابق با تصویر زیر) همچنین می توانید از سایدبار سمت چپ گزینه Mock Servers را انتخاب کنید و در زمان ایجاد ماک سرور کالکشن خود را انتخاب نمایید.
2. در قسمت بعد تنظیمات کلی ماک سرور را انجام می دهیم که در تصویر زیر تمامی موارد مشخص شده است. در صورتی که مایل به private کردن ماک سرور هستید تا رکوئست های مشخصی به آن درخواست دهند، می توانید گزینه Make mock server private را انتخاب کنید. در اینصورت فقط http request هایی که هدر x-api-key را دارند معتبر هستند.
3. در قسمت بعد اطلاعات mock server جدید را نمایش می دهد که به معنی موفقیت آمیز بودن ایجاد mock server می باشد.
4. حال کافی است که mock server url را با base url خود جایگزین کنید تا تمامی request های شما به ماک سرور postman فرستاده شود و response خود را با توجه به example هایی که برای هر api ایجاد کرده ایم، دریافت نماییم.
5. برای مانیتور کردن رکوئست های زده شده به ماک سرور هم می توانید از قسمت mock-server->monitor استفاده کنید تا جزییات و روند کار ماک سرور را مشاهده نمایید.
برای ساخت example برای api ها، از قسمت بالا سمت راست گزینه add example را انتخاب میکنیم و example خود را ایجاد میکنیم (مطابق با تصاویر زیر)
در صورتی که example های مختلف برای api تعریف کرده اید، برای مثال در صورتی که status code 200 بود چه ریسپانسی برگردد یا زمانی که 422 و ... (که بهتر است اینکار را انجام دهید) و در زمان صدا زدن api نیاز داشتید که ریسپانس مدنظر را دریافت کنید، می توانید از x-mock-response-code در هدر رکوئست خود استفاده کنید که مقدار ان برابر با status code هر response مورد نظر می باشد.