طراح و برنامه نویس وب ،عاشق یادگرفتن راهکارای جدید و چالش برانگیز
راهاندازی Swagger UI با Docker
اغلب برنامهنویسها برای تست APIهایی که مینویسن از ابزار Postman استفاده میکنن. به شخصه اعتقاد دارم ابزار کامل و مناسبیه مخصوصاً برای تست نویسی، اما مشکلی که داره اینه که نمیشه محیطهای ایجاد شده رو در حالت رایگان با بقیه دولوپرها به اشتراک گذاشت و به محض کوچکترین تغییر باید همه دوباره ایمپورتش بکنن.
به خاطر این موضوع از سواگر(swagger) استفاده میکنیم. راه اندازی swagger UI نیاز به نصب اون روی سیستم عامل داره و داستانهای مخصوص به خودش رو داره . داکر (که خدا خیرش بده) خیلی کار رو راحت کرده و با چند تا کامنت ساده میشه ایمیج مورد نظر رو دانلود و استفاده کرد.
اما در مورد swagger UI یه نکته خیلی ریز و کاربردی داره. فرض کنید با کامند زیر ایمیج swagger UI رو ران میکنیم.
$ docker run -p 81:8080 --name=my_swagger_name -d swaggerapi/swagger-ui
دستور بالا swagger UI رو از پورت پیش فرض ۸۰۸۰ روی پورت ۸۱ ما با نام دلخواه my_swagger_name اجرا میکنه و میشه تو مرورگر دیدش.
نکته ای که گفتم اینجاست، بعد از اجرای داکر محیط پیش فرض swagger UI لود میشه و Json پیش فرض خودش رو نمایش میده ، چیزی که ما بهش نیازی نداریم.در واقع ما میخوایم Json خودمون رو لود کنیم. برای این کار از این دستور استفاده میکنیم.
docker run -p 81:8080 --name=my_swagger_name -e SWAGGER_JSON=/mnt/api-docs.json -d -v `pwd`:/mnt swaggerapi/swagger-ui
این دستور باید در محل قرار گیری فایل json (در اینجا api-docs.json )ران بشه .
همونطور که معلومه دو تا آپشن جدید داریم:
- e : Set environment variables
- v : Volume
آپشن v یا volume یک کپی از فایل ها و فولدرهای آدرس فعلی (pwd) رو در فولدر mnt داکر ما کپی میکنه، آپشن e یا enviroment variable هم آدرس داکری فایلی که باید لود بشه رو دریافت میکنه و به محض هر تغییری در فایل در آدرس لوکالی اون همون تغییر رو روی داکر هم اعمال میکنه.
همونطور که تو عکس معلومه بعد اجرای کامند آدرس swagger UI به آدرس جدید آپدیت میشه و دیتا رو هم لود میکنه.
مطلبی دیگر از این انتشارات
معماری MVC که میگن یعنی چی؟
مطلبی دیگر از این انتشارات
میکروسرویس چیست؟
مطلبی دیگر از این انتشارات
تبدیلType استفاده شده در Expression ها با استفاده از ExpressoinVisitor