چگونه نام رشته ای enum ها را در swagger نمایش دهیم؟
چگونه نام رشته ای enum ها را در swagger نمایش دهیم؟

همانطور که می دانید وقتی از نوع شمارشی یا همانenumدرdtoهای ورودی یکapiاستفاده می کنیم، ابزارswagger آنها را به صورت عددی نمایش می دهد و کسانی که ازapiهای ما  می خواهند استفاده کنند کمی سردرگم می شوند چون اعداد هیچ مفهومی ندارند و این یک ضعف برای داکیومنت ما محسوب می شود. بهتر است بجای اعداد نام رشته ای مقادیرenumرا نمایش دهیم که کاربران استفاده کننده راحتر مفهوم داده های ورودی را درک کنند.

فرض کنید ما نوع داده ایenumزیر را به عنوان ورودی می خواهیم از کاربر دریافت کنیم.

    public enum Priority
    {
        Much = 1,
        medium = 2,
        Low = 3,
    }

تصویر زیر حالت پیش فرض استفاده از نوع های شمارشی در swaggerرا نشان می دهد. همانطور که مشاهده می کنید در کادر ورود اطلاعات پارامتر هایapiما مقادر1,2,3را برای پارامترPriorityمی توانیم انتخاب کنیم.

 

نمایش نام رشته ای داده های شمارشی در swagger

 

برای فعال سازی نمایش نام رشته ای نوع های شمارشی(enum)درswagger کد زیر را بهAddSwaggerGenاضافه می کنیم.

                c.DescribeAllEnumsAsStrings();

پس از اعمال تغیرات باید کانفیگ swagger به صورت زیر باشد.

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info { Title = "Training enum datatype in swagger with bugeto", Version = "v1" });
                c.DescribeAllEnumsAsStrings();
            });

حالا اگر پروژهasp.net core را اجرا کنیم و صفحهswaggerرا باز کنیم می بینیم که به جای اعداد از نام رشته ای مقادریenumاستفاده شده است که این کار باعث افزایش بهره وری استفاده کنندگان از api ها می شود.

نمایش نام رشته ای نوع داده ای enum در swagger

امیدوارم این آموزش برای شما مفید بوده باشد.

درضمن مقاله نحوه استفاده از swagger در asp.net core را نیز می توانید در بلاگ باگتو مطالعه نمایید.

تگ‌ها
اشتراک
1 نظرات
  • عکس پروفایل حسن مرادی فرد در سایت باگتو
  • |
  • ارسال شده توسط : حسن مرادی فرد
  • |
  • زمان : 1398/11/21

بسیار عالی مهندس بابایی عزیز



برای ارسال نظر باید وارد حساب کاربری خود شوید
ورود به حساب کاربری ثبت نام