我正在创建一个 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)
{
....
}
此时我的问题来了,因为我有相同的方法返回两个不同的模型(将来可能会更多)。在Web API设计的调查中,我读到访问的关键字可能不是动词。一种方法的 url 是 /users/1,但其他方法的 url 必须不同,这就是我的问题。
谢谢!
您可以创建两个不同的dto(数据传输对象)。只需两个简单的类,就像您的用户一样,其中包含您想要的数据。 我不知道你是如何进行授权的,但是当管理员调用 api 时,你返回 Ok(dto),当用户调用 Ok(dtoWithPassword) 时。
并确保密码经过哈希处理和加盐处理。