Удалить свойство из возвращенного объекта в c# - PullRequest
0 голосов
/ 29 мая 2020

У меня есть API. net core 3.1, который возвращает информацию о клиенте. В этом возврате есть поле для пароля. Как мне запретить возвращение поля пароля вместе с объектом клиента?

// GET api/<CustomersController>/5
        [HttpGet("{id}")]
        public async Task<ActionResult<Customer>> Get(Guid id)
        {
            var customer = await _context.Customers.FindAsync(id);
            if (customer == null)
            {
                return NotFound();
            }

            return customer;
        }

Я пробовал использовать JsonIgnore, но это не позволило мне увидеть POST, поскольку в моей модели есть обязательное поле для пароля.

[Required]
[JsonIgnore]
public string Password { get; set; }

1 Ответ

2 голосов
/ 29 мая 2020

Создайте DTO , который не содержит поля для пароля, а затем вместо этого верните DTO:

public class CustomerDTO 
{
    // Customer's fields without the password
}

[HttpGet("{id}")]
public async Task<ActionResult<CustomerDTO>> Get(Guid id)
{
    var customer = await _context.Customers.FindAsync(id);
    if (customer == null)
    {
        return NotFound();
    }
    var customerToReturn = MapCustomerToCustomerDTO(customer); // manually do this, or use some auto mapper
    return customerToReturn;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...