Нулевое значение для запроса на размещение в RestApi - PullRequest
0 голосов
/ 07 февраля 2019

Я кодирую Rest API с помощью .NET Core.У меня проблема.Я использую Почтальон для теста.Например;Моя переменная: имя, фамилия, возраст.

(Normally: ID:1, name: Amet, surname: Asar, age:30)

Я использую запрос Put.

{
  "ID": 1
  "name": "Ayhan",
  "surname":"Hara"
}

Но я не отправляю слово "age".Таким образом, он сохраняет нулевое значение для возраста.

Like;

id=1, name=Ayhan, surname=Hara, age=null

Как можно проверить нулевую переменную?Если значение возраста не введено, не изменяйте.

[HttpPut("{id}")]
public ActionResult Update(int id, [FromBody]JsonPutDocument<Customer_UserDTO> customer_UserDTO)
{
    if (!ModelState.IsValid)
        return BadRequest("İstenilen Datalar Düzgün Değil");

    var user = unitOfWork.customer_User.GetById(id);
    if (user == null)
        return NotFound("İlgili müşteri bulunamadı");

    var userToPut = mapper.Map<Customer_UserDTO>(user);
    customer_UserDTO.ApplyTo(userToPut, ModelState);
    mapper.Map(userToPut, user);
    unitOfWork.SaveChanges();
    return Ok(mapper.Map<Customer_User>(user));
}

1 Ответ

0 голосов
/ 08 февраля 2019

Возможно, вы захотите взглянуть на [Patch].В частности, этот блог поможет вам: https://dotnetcoretutorials.com/2017/11/29/json-patch-asp-net-core/

Ваша единственная другая реальная альтернатива - вручную сопоставить свойства на основе ваших собственных условий.

В качестве альтернативы, это может быть вопрос для Automapperребята по адресу: https://github.com/AutoMapper/AutoMapper

...