Методы контроллера для возврата разных моделей - PullRequest
0 голосов
/ 07 октября 2018

Я создаю REST API, поэтому я создаю контроллер.

У меня есть такая сущность:

public class User
{
    public int Id { get; set; }
    public string Username { get; set; }
    public string Password { get; set; }
    public int Age { get; set; }
    public string PersonalInformation { get; set; }
}

В моем интерфейсе у меня есть 2 представления, для которых требуется дваразные модели пользователя.

Администратор может проверить личную информацию пользователя, и ему необходимо просмотреть всю информацию, кроме пароля.

Пользователь может изменить всю свою информацию, поэтому ему нужно будет просмотреть всю информацию.его информация.

Другой способ - показать только пользователя Username и PersonalInformation, и администратор и пользователь могут запросить его.

В этом случае мне понадобятся три разныхМодели для отправки на внешний интерфейс.

Для доступа к этой информации у моего контроллера будет метод:

[HttpGet("{id}")]
public IActionResult Get(int id)
{
    ....
}

На данный момент возникает мой вопрос, потому что у меня есть один и тот же метод, чтобы вернуть две разные модели(в будущем может быть больше).Изучая дизайн веб-API, я прочитал, что ключевое слово для доступа не может быть глаголом.URL-адрес одного метода будет / users / 1, но другие должны отличаться, и вот моя проблема.

Спасибо!

1 Ответ

0 голосов
/ 07 октября 2018

Вы можете создать два разных dtos (объекты передачи данных).Просто два простых класса, как ваш пользователь с данными, которые вы хотите в нем.Я не знаю, как вы делаете авторизацию, но когда администратор вызывает API, вы возвращаете Ok (dto) и когда пользователь вызывает Ok (dtoWithPassword).

И убедитесь, что пароль хешируется исоленая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...