.Net Web API 004 Controller获取对象列表,传入数据以及对象

1、返回UserEntityList

这个服务接口的目的是分为用户列表,代码如下所示。

/// <summary>
/// 得到用户列表
/// </summary>
/// <returns></returns>
[HttpGet]
[Route("GetUserList")]
public ActionResult<List<UserEntity>> GetUserList()
{
    var myUserEntityList = new List<UserEntity>()
    {
        new UserEntity(){ GUID="A",UserName="AA",Password="", Tel="AAA"},
        new UserEntity(){ GUID="B",UserName="BB",Password="", Tel="BBB"},
        new UserEntity(){ GUID="C",UserName="CC",Password="", Tel="CCC"},
        new UserEntity(){ GUID="D",UserName="DD",Password="", Tel="DDD"},
        new UserEntity(){ GUID="E",UserName="EE",Password="", Tel="EEE"},
    };
    return this.Ok(myUserEntityList);
}

通过Url地址访问,得到的结果如下图所示。

截图.png

2、更新密码

更新密码操作需要传入多个参数,这种情况下,需要传入多个参数。服务的代码如下所示。

/// <summary>
/// 修改密码
/// </summary>
/// <returns></returns>
[HttpPost]
[Route("ChangePassword")]
public ActionResult ChangePassword(string pUserGUID, string pOldPassword, string pNewPassword)
{
    //先判断新密码格式是否合规
    var myNewPassword = pNewPassword.Trim();
    if (myNewPassword.Length == 0)
    {
        return this.BadRequest("新密码不能为空。");
    }

    //先读取用户的信息,判断传入的旧密码是否正确,正常要从数据库中读取
    if (pOldPassword != "123456")
    {
        return this.BadRequest("原始密码错误。");
    }

    return this.Ok("密码修改成功" + pUserGUID);
}

因为是修改密码,所以这个API定义为Post,传入的值都是简单类型,可以直接附属到Url后面,不需要定义消息体。编译后,swagger界面如下图所示。

截图.png

执行测试,效果如下图所示。

截图.png

3、添加用户传入一个UserEntity

在添加用户或者更新用户信息的时候,需要传入一个UserEntity对象,也就是说我们写的API需要接受一个UserEntity。以添加用户为例,代码如下所示。

/// <summary>
/// 添加用户
/// </summary>
/// <returns></returns>
[HttpPost]
[Route("AddUser")]
public ActionResult AddUser(UserEntity pUserEntity)
{
    if (pUserEntity == null)
    {
        return this.BadRequest("请传正确的UserEntity对象。");
    }
    if (pUserEntity.GUID == "")
    {
        pUserEntity.GUID = Guid.NewGuid().ToString();
    }

    return this.Ok("成功添加了名称为" + pUserEntity.UserName + "的用户。");
}

在swagger中测试,会提供传入的数据格式实例。如下图所示。

截图.png

我们构造一个数据。

{
  "guid": "guid",
  "userName": "TestName",
  "tel": "手机号码"
}

执行,结果如下图所示。

截图.png

posted @ 2023-08-02 12:55  mytudousi  阅读(435)  评论(0编辑  收藏  举报