اگر کار ولیدیشن فیلدهای مدل ورودی رو توسط 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 تون شبیه این میشه:
{ "statusCode": 400, "message": "شماره موبایل معتبر نیست - کد اعتبارسنجی معتبر نیست" }