C# RESTful API建模

C# RESTful API建模,c#,asp.net,rest,asp.net-web-api,restful-architecture,C#,Asp.net,Rest,Asp.net Web Api,Restful Architecture,我刚开始学习webapi并尝试实现RESTful API。我的问题是如何建模。我有一个帐户模型: public class Account: EntityBase<string> { [JsonProperty("_rev")] public string Revision { get; set; } [JsonProperty("type")] public string Type { get; set; } = "account"; [Js

我刚开始学习webapi并尝试实现RESTful API。我的问题是如何建模。我有一个帐户模型:

public class Account: EntityBase<string>
{
    [JsonProperty("_rev")]
    public string Revision { get; set; }
    [JsonProperty("type")]
    public string Type { get; set; } = "account";
    [JsonProperty("firstname")]
    public string Firstname { get; set; }
    [JsonProperty("lastname")]
    public string Lastname { get; set; }
    [JsonProperty("email")]
    public string Email { get; set; }
    public string Password { get; set; }
    [JsonProperty("role")]
    public string Role { get; set; }
    [JsonProperty("password")]
    public string PasswordHash { get; set; }
    [JsonProperty("salt")]
    public string Salt { get; set; }
}
和登录名:

//POST api/Accounts/Login
    [HttpPost]
    public IHttpActionResult Login([FromBody]Account account)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }
        var result = accountsService.LoginAccount(account);
        return Ok(result);
    }
我的问题是,我必须使用相同的参数(帐户模型)向同一控制器发出两个POST请求。这是正确的吗?我是否需要制作另一个模型(例如用户模型)并使用另一个控制器进行登录

PS我使用Angular向api发出请求。
Thanx

我能想到适用于你的情况的可靠原则#1:

  • 单一责任:改变一个类应该只有一个理由
  • 如果您将姓名和密码信息粘贴到
    帐户
    。如果我想更改帐户信息怎么办?用户信息呢?这是两个不同的原因

    所以,我肯定会创建一个单独的模型来封装一个特定的关注点

    //POST api/Accounts/Login
        [HttpPost]
        public IHttpActionResult Login([FromBody]Account account)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }
            var result = accountsService.LoginAccount(account);
            return Ok(result);
        }