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地址访问,得到的结果如下图所示。

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界面如下图所示。

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

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中测试,会提供传入的数据格式实例。如下图所示。

我们构造一个数据。

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

执行,结果如下图所示。

.Net Web API 004 Controller获取对象列表,传入数据以及对象的更多相关文章

  1. 总体介绍ASP.NET Web API下Controller的激活与释放流程

    通过<ASP.NET Web API的Controller是如何被创建的?>我们已经对HttpController激活系统的核心对象有了深刻的了解,这些对象包括用于解析程序集和有效Http ...

  2. ASP.NET Web API的Controller是如何被创建的?

    Web API调用请求的目标是定义在某个HttpController类型中的某个Action方法,所以消息处理管道最终需要激活目标HttpController对象.调用请求的URI会携带目标HttpC ...

  3. ASP.NET Web API下Controller激活

    一.HttpController激活流程 对于组成ASP.NET Web API核心框架的消息处理管道来说,处于末端的HttpMessageHandler是一个HttpRoutingDispatche ...

  4. web开发-服务器Controller到前端中的数据传递

    一, ajax方式 (一)controller中 1. 定义AjaxResponse类 成员有: status , message, data.  其中 status是成功或失败状态, message ...

  5. 数据读取器对象SqlDataReader与数据适配器对象SqlDataAdapter的使用

        一.数据读取器对象SqlDataReader的使用      如何执行有查询结果集的select语句. 1.SqlDataReader对象的作用:当包含select语句的SqlCommad对象 ...

  6. Web API中如何获取相对地址的绝对地址 Server.MapPath

    var sPath = System.Web.Hosting.HostingEnvironment.MapPath("/FilePath/");

  7. web中纯java获取配置文件中的数据

    /*********获取配置文件,但配置文件中的值改变,不会随着值的改变也获取的参数值改变**********/  /**   * 原因是因为,类装载,装载完后,不会再去装载了   * *///  I ...

  8. python获取list列表随机数据

    第一种方法(推荐)适用于随机取一个值, 返回一个值import randomlist1 = ['佛山', '南宁', '北海', '杭州', '南昌', '厦门', '温州']a = random.c ...

  9. 数据库学习任务四:数据读取器对象SqlDataReader、数据适配器对象SqlDataAdapter、数据集对象DataSet

    数据库应用程序的开发流程一般主要分为以下几个步骤: 创建数据库 使用Connection对象连接数据库 使用Command对象对数据源执行SQL命令并返回数据 使用DataReader和DataSet ...

  10. Thread对象 既传入了Runnable对象又重写了run()方法

    Thread本身是一个类,其run(): 正常情况下, target(即传入的new Runnable()对象)不为空,就是执行target里面的run方法 但是,重新run()方法之后,就不会在执行 ...

随机推荐

  1. 完美的背景图全屏css代码 – background-size:cover?

    写主题样式的时候经常会碰到用背景图铺满整个背景的需求,这里分享下使用方法 需要的效果 图片以背景的形式铺满整个屏幕,不留空白区域 保持图像的纵横比(图片不变形) 图片居中 不出现滚动条 多浏览器支持 ...

  2. Java读取数据库表(二)

    Java读取数据库表(二) application.properties db.driver.name=com.mysql.cj.jdbc.Driver db.url=jdbc:mysql://loc ...

  3. Prism Sample 7 Modules Code

    例7对注册Module使用了配置命令. 见app.xaml.cs: 1 using Modules.Views; 2 using Prism.Ioc; 3 using Prism.Modularity ...

  4. 2021-05-19:给定一个非负数组成的数组,长度一定大于1,想知道数组中哪两个数&的结果最大。返回这个最大结果。时间复杂度O(N),额外空间复杂度O(1)。

    2021-05-19:给定一个非负数组成的数组,长度一定大于1,想知道数组中哪两个数&的结果最大.返回这个最大结果.时间复杂度O(N),额外空间复杂度O(1). 福大大 答案2021-05-1 ...

  5. 3 分钟利用 FastGPT 和 Laf 将 ChatGPT 接入企业微信

    原文链接:https://forum.laf.run/d/556 FastGPT 是一个超级的 ChatGPT 平台项目,功能非常强大: 集成了 ChatGPT.GPT4 和 Claude 可以使用任 ...

  6. Android Create New Module 提示Project needs to be converted to androidx.* dependencies

    最近在一个flutter项目中创建一个android plugin module提示androidx依赖问题 finish始终无法激活,最后参照flutter官方https://flutter.dev ...

  7. 使用 StarCoder 创建一个编程助手

    如果你是一个软件开发者,你可能已经使用过 ChatGPT 或 GitHub 的 Copilot 去解决一些写代码过程中遇到的问题,比如将代码从一种语言翻译到另一种语言,或者通过自然语言,诸如" ...

  8. 基于瑞芯微camera文章汇总pdf分享给大家

    前面一段时间基于瑞芯微3568平台编写了camera系列文章, 一共12篇,目前更新完毕. <瑞芯微文章合集> camera系列文章编写前后一共花费2个月时间, 期间查阅了很多资料,做了很 ...

  9. Python中使用支付宝支付

    准备 # 支付宝文档 https://opendocs.alipay.com/open/270/105898?pathHash=b3b2b667 # 在沙箱环境下实名认证 https://openho ...

  10. go NewTicker 得使用

    转载请注明出处: 在 Go 语言中,time.NewTicker 函数用于创建一个周期性触发的定时器.它会返回一个 time.Ticker 类型的值,该值包含一个通道 C,定时器会每隔一段时间向通道 ...