محمد مقدم
محمد مقدم
خواندن ۲ دقیقه·۲ سال پیش

ایجاد Response های شخصی و استاندارد سازی شده در ASP.Net

اغلب اوقات در سرویس ها پیاده سازی استاندارد Response یک دغدغه است .

همچنین باید بین برنامه نویسان Front و توسعه دهندگان Backend یک توافقی ایجاد گردد که قابلیت این را داشته باشند که بتوانند هم با استفاده از HttpStatusCode تشخیص دهند که پاسخ سرویس همراه با خطا بوده است یا خیر

در صورت صحیح بودن پاسخ سرویس بتوانند لیست خطاها را دریافت کرده و همچنین در صورت صحیح بودن پاسخ یک مقدار صحیح به عنوان Value در جواب برگردانده شود.

در ادامه یک پکیج کاربردی برای استاندارد سازی Response ها رو در Net. خدمتتان معرفی میکنم که هرچند ساده ولی بسیار کاربردی است

این پکیج با نام ReeResult در Nuget در دسترس می باشد که می توان از ان استفاده نمود .در ادامه قابلیت های این پکیج را مشاهده می کنیم

در مثال بالا یک Response از یک سرویس دیده می شود که با پکیج ReeResult ساخته شده است که می توان در بدنه Response مقادیر IsSuccess،IsFailed،Reasons،errors و Value رو مشاهده نمود

فیلد Value درصورتی مقدار میگیرد که پاسخ سرویس همراه با خطا نباشد .

اما نکته جالب تر اینکه Status این Response هم نیز Customize شده و بدون استفاده از هیچگونه Throw Exception که دیگر استفاده از آن توضیه نمی شود خطای 404 درResponse برگردانده شده است

برای استفاده از این قابلیت کافی است از پکیج ReeResult,HttpRespnse استفاده شود که علاوه بر قابلیت های پکیج ReeResult قابلیت ساخت HttpStatusCode را نیز دارد.

در ادامه کد نوشته شده برای نمایش Response بالا را باهم مشاهده می نماییم.

برای ایجاد Result استاندارد شده کافی است مانند ساختار بالا نوشته شود و همچنین برای ست کردن HttpStatusCode متناسب با خطای شما در Fail نوع StatusCode مناسب را ست کنیم و بدون Throw کردن Exception پاسخ مناسب با درخواست را برای کاربر ارسال نماییم.



برای استفاده از این پکیج می توان با جستجو در Nuget و یا همچنین با کلیک برروی نام پکیج های بالا آنها را مشاهده نمایید و همچنین پروژه در Github نیز قرارداده شده و توضیحات کامل آن را می توانید در آنجا مشاهده نمایید.

خوشحال میشوم اگر از این پکیج استفاده نمایید و پیشنهاد ها و انتقادات خودتون رو برای بنده ارسال نمایید.

با تشکر

محمدمقدم

responsehttpstatuscoderesultcustomeresultasp net
ASP.Net Developer
شاید از این پست‌ها خوشتان بیاید