محمد کمائی - Telegram : @komayi
محمد کمائی - Telegram : @komayi
خواندن ۱ دقیقه·۳ سال پیش

هندل کردن عمومی ارور 400 در برنامه وب ای پی آی دات نت کور - net core web api global BadRequest (400) handling

اگر کار ولیدیشن فیلدهای مدل ورودی رو توسط data annotation ها یا fluent validation انجام بدین و کاربر فیلدی رو درست پر نکنه ModelState معتبر یا Valid نیست.

اروری که در swagger میگیرید به این شکل هست :

Error 400 Response headers

date: Thu19 Aug 2021 13:45:08 GMT

server: Kestrel

www-authenticate: Bearer

که هم خروجی مناسبی برای برنامه SPA مون نیست ، هم اینکه در همه اکشن متدها باید if(ModelState.IsValid) رو بنویسیم.

حالا روشی رو بهتون میگم که هر دو مشکل رو حل میکنه. اول اینکه در کلاس startup.cs تون کد نزنید و service یا config ای که مینویسن رو در یک کلاس دیگر بنویسید و در استارت آپ فقط صداش کنید.

برای این کار یعنی مدیریت ارورهای بد رکوئست یا همون ارور 400 یه فولدر در پروژه web api تون اضافه کنید به نام ioc یا config و کلاسهای این چنینی رو در اون اضافه کنید و در استارت آپ کالشون کنید.

دیگه کدها رو نمیگم D:
چرا میگم ولی لینک stackoverflow اش رو میدم که اگه دوست داشتین یه لایک هم اونجا بهم بدین :

https://stackoverflow.com/a/68863235/9875486

خیلی سرچ کردم و کسی به این خوبی جواب نداده در اینترنت.

خروجی ارور 400 تون شبیه این میشه:

{ &quotstatusCode&quot: 400, &quotmessage&quot: &quotشماره موبایل معتبر نیست - کد اعتبارسنجی معتبر نیست&quot }
net coreerror 400 handlingswaggermodelstate isvalid
C# , .net core & angular & blazor , sql server
شاید از این پست‌ها خوشتان بیاید