چگونه نام رشته ای 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 را نیز می توانید در بلاگ باگتو مطالعه نمایید.

    جدیدترین ویدئوهای آموزشی

    در بخش TV باگتو، آموزش های کوتاه و جدید را مشاهده نمایید

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

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



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