繁体   English   中英

建模RESTful API

[英]Modeling RESTful API

我只是开始学习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/Register
    [HttpPost]
    public IHttpActionResult Register([FromBody]Account account)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }
        var result = accountsService.RegisterAccount(account);
        return Ok(result);
    }

和登录名:

//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发出请求。 谢谢

我可以想到适用于您的情况的SOLID原则#1:

  1. 单一职责:更改班级应该只有一个理由。

如果您在“ Account粘贴名称和密码信息。 如果我想更改帐户信息怎么办? 用户信息呢? 这是两个单独的原因。

因此,我肯定会创建一个单独的模型来封装一个特定的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM