.Net Web API 004 Controller获取对象列表,传入数据以及对象
/// <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); }
更新密码操作需要传入多个参数,这种情况下,需要传入多个参数。服务的代码如下所示。
/// <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界面如下图所示。
在添加用户或者更新用户信息的时候,需要传入一个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中测试,会提供传入的数据格式实例。如下图所示。
{ "guid": "guid", "userName": "TestName", "tel": "手机号码" }
执行,结果如下图所示。