تا چه میزان کلیدهای خارجی باید در لایه Application بررسی شوند؟
نویسنده: هادی مزارعی
تاریخ: ۱۴۰۳/۰۵/۱۶ ۰۶:۴۸
آدرس: www.dntips.ir
سلام
زمانی که کاربر یک درخواست از نوع POST را به API ارسال میکنه، نتیجه انجام عملیات در متغیری با نام IsSuccess برگردانده میشه. اگر مقدار این متغیر برابر false باشه یعنی متغیر ErrorList حاوی پیغام است.
سناریو:
سوال:
تشکر
مزیت وجود این همه فریمورکهای اعتبارسنجی، عدم واگذاری یکسری از کارها به خود بانک اطلاعاتی است؛ وگرنه، بله. اتفاقا خود بانک اطلاعاتی به خوبی میتواند (یکسری از قیود «ابتدایی» تعریف شدهی در آنرا و نه ... بررسیهای پیچیدهی ممکن توسط فریمورکهای اعتبارسنجی را) اعتبارسنجی کند و درخواستهای insert/update/delete را راسا خاتمه داده و برگشت بزند. البته ... در نهایت با پیامهایی غیرکاربرپسند و به همراه استثناءهایی که هزینهها و سربارهایی را به سیستم تحمیل میکنند. به همین جهت ترجیح داده میشود که برای بررسیهای پیچیدهتر و همچنین نمایش پیامهای کاربرپسندتری، پیش از ارسال اطلاعات به بانک اطلاعاتی، اعتبارسنجیهای پیچیده در سمت برنامه انجام شوند.
آنچه که در خصوص کتابخانه های مخصوص اعتبارسنجی فرمودید آیا با ارجاع به بانک اطلاعاتی هم پیاده سازی میشوند؟ چون مفهوم اعتبارسنجی را در سطح کلاس های برنامه بلد هستم. برای سناریوی عنوان شده در پست اولیه، یک لایه اعتبارسنجی توسط FluentValidation پیاده سازی شده و null بودن کلیدها بررسی می شوند ولی وجود چنین شناسه ای به عنوان کلید اصلی در بانک اطلاعاتی چطور باید بررسی شود؟ آیا با همان FluentValidation امکانپذیر است یا اینکه در همان لایه Application باید تمام کلیدها بررسی و پیغام مناسب به کاربر برگردانده شود؟
یک مثال در این مورد جهت نمایش نحوهی کار با سرویسها در حین پیاده سازی اعتبارسنجها