Use custom validation responses with fluent validation

前端 未结 4 1230
天命终不由人
天命终不由人 2020-12-29 12:46

Hello I am trying to get custom validation response for my webApi using .NET Core.

Here I want to have response model like

[{
  ErrorCode:
  ErrorFi         


        
4条回答
  •  我在风中等你
    2020-12-29 12:54

    Refer this link for answer: https://github.com/JeremySkinner/FluentValidation/issues/548

    Solution:

    What I've done is that I created a basevalidator class which inherited both IValidatorInterceptor and AbstractValidator. In afterMvcvalidation method if validation is not successful, I map the error from validationResult to my custom response object and throw Custom exception which I catch in my exception handling middleware and return response.

    On Serialization issue where controller gets null object:

    modelstate.IsValid will be set to false when Json Deserialization fails during model binding and Error details will be stored in ModelState. [Which is what happened in my case]

    Also due to this failure, Deserialization does not continue further and gets null object in controller method.

    As of now, I have created a hack by setting serialization errorcontext.Handled = true manually and allowing my fluentvalidation to catch the invalid input.

    https://www.newtonsoft.com/json/help/html/SerializationErrorHandling.htm [defined OnErrorAttribute in my request model].

    I am searching for a better solution but for now this hack is doing the job.

提交回复
热议问题