Как избежать передачи нулевого объекта сущности в метод веб-API - PullRequest
0 голосов
/ 24 августа 2018

У меня есть метод веб-API ниже, как показано ниже

public bool UpdateValidations([FromBody] ValidationKeyEntity validationKey)
{
    if (ModelState.IsValid)
    { 
        //my code here
    }
}

public class ValidationKeyEntity
{
    public int ValidationKeyId { get; set; }

    [MaxLength(Constants.maxStringLength)]
    public string Name { get; set; }

    public int DisplayId { get; set; }

    [MaxLength(Constants.maxStringLength)]
    public string CreatedBy { get; set; }
}

Я выполняю тестирование с использованием Postman. Я передаю другой json, чем объект ValidationKeyEntity, как {"Vishal": "vishal"} в качестве параметра.Но все же мой ModelState.IsValid возвращает true .

Как можно избежать принятия другого объекта json, чем объект "ValidationKeyEntity"?

1 Ответ

0 голосов
/ 31 августа 2018
  1. Используйте RequiredAttribute , чтобы пометить свойства как required:

    public class ValidationKeyEntity
    {
        [Required]
        public int ValidationKeyId { get; set; }
    
        [Required]
        public string Name { get; set; }
    
        [Required]
        public int DisplayId { get; set; }
    
        [Required]
        public string CreatedBy { get; set; }
    }
    
  2. Установить MissingMemberHandling глобальнодля обработки отходов:

    var httpConfiguration = new HttpConfiguration();
    
    httpConfiguration
                    .Formatters
                    .JsonFormatter
                    .SerializerSettings
                    .MissingMemberHandling = MissingMemberHandling.Error;
    
...