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

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获取对象列表,传入数据以及对象的更多相关文章
- 总体介绍ASP.NET Web API下Controller的激活与释放流程
通过<ASP.NET Web API的Controller是如何被创建的?>我们已经对HttpController激活系统的核心对象有了深刻的了解,这些对象包括用于解析程序集和有效Http ...
- ASP.NET Web API的Controller是如何被创建的?
Web API调用请求的目标是定义在某个HttpController类型中的某个Action方法,所以消息处理管道最终需要激活目标HttpController对象.调用请求的URI会携带目标HttpC ...
- ASP.NET Web API下Controller激活
一.HttpController激活流程 对于组成ASP.NET Web API核心框架的消息处理管道来说,处于末端的HttpMessageHandler是一个HttpRoutingDispatche ...
- web开发-服务器Controller到前端中的数据传递
一, ajax方式 (一)controller中 1. 定义AjaxResponse类 成员有: status , message, data. 其中 status是成功或失败状态, message ...
- 数据读取器对象SqlDataReader与数据适配器对象SqlDataAdapter的使用
一.数据读取器对象SqlDataReader的使用 如何执行有查询结果集的select语句. 1.SqlDataReader对象的作用:当包含select语句的SqlCommad对象 ...
- Web API中如何获取相对地址的绝对地址 Server.MapPath
var sPath = System.Web.Hosting.HostingEnvironment.MapPath("/FilePath/");
- web中纯java获取配置文件中的数据
/*********获取配置文件,但配置文件中的值改变,不会随着值的改变也获取的参数值改变**********/ /** * 原因是因为,类装载,装载完后,不会再去装载了 * */// I ...
- python获取list列表随机数据
第一种方法(推荐)适用于随机取一个值, 返回一个值import randomlist1 = ['佛山', '南宁', '北海', '杭州', '南昌', '厦门', '温州']a = random.c ...
- 数据库学习任务四:数据读取器对象SqlDataReader、数据适配器对象SqlDataAdapter、数据集对象DataSet
数据库应用程序的开发流程一般主要分为以下几个步骤: 创建数据库 使用Connection对象连接数据库 使用Command对象对数据源执行SQL命令并返回数据 使用DataReader和DataSet ...
- Thread对象 既传入了Runnable对象又重写了run()方法
Thread本身是一个类,其run(): 正常情况下, target(即传入的new Runnable()对象)不为空,就是执行target里面的run方法 但是,重新run()方法之后,就不会在执行 ...
随机推荐
- 完美的背景图全屏css代码 – background-size:cover?
写主题样式的时候经常会碰到用背景图铺满整个背景的需求,这里分享下使用方法 需要的效果 图片以背景的形式铺满整个屏幕,不留空白区域 保持图像的纵横比(图片不变形) 图片居中 不出现滚动条 多浏览器支持 ...
- Java读取数据库表(二)
Java读取数据库表(二) application.properties db.driver.name=com.mysql.cj.jdbc.Driver db.url=jdbc:mysql://loc ...
- Prism Sample 7 Modules Code
例7对注册Module使用了配置命令. 见app.xaml.cs: 1 using Modules.Views; 2 using Prism.Ioc; 3 using Prism.Modularity ...
- 2021-05-19:给定一个非负数组成的数组,长度一定大于1,想知道数组中哪两个数&的结果最大。返回这个最大结果。时间复杂度O(N),额外空间复杂度O(1)。
2021-05-19:给定一个非负数组成的数组,长度一定大于1,想知道数组中哪两个数&的结果最大.返回这个最大结果.时间复杂度O(N),额外空间复杂度O(1). 福大大 答案2021-05-1 ...
- 3 分钟利用 FastGPT 和 Laf 将 ChatGPT 接入企业微信
原文链接:https://forum.laf.run/d/556 FastGPT 是一个超级的 ChatGPT 平台项目,功能非常强大: 集成了 ChatGPT.GPT4 和 Claude 可以使用任 ...
- Android Create New Module 提示Project needs to be converted to androidx.* dependencies
最近在一个flutter项目中创建一个android plugin module提示androidx依赖问题 finish始终无法激活,最后参照flutter官方https://flutter.dev ...
- 使用 StarCoder 创建一个编程助手
如果你是一个软件开发者,你可能已经使用过 ChatGPT 或 GitHub 的 Copilot 去解决一些写代码过程中遇到的问题,比如将代码从一种语言翻译到另一种语言,或者通过自然语言,诸如" ...
- 基于瑞芯微camera文章汇总pdf分享给大家
前面一段时间基于瑞芯微3568平台编写了camera系列文章, 一共12篇,目前更新完毕. <瑞芯微文章合集> camera系列文章编写前后一共花费2个月时间, 期间查阅了很多资料,做了很 ...
- Python中使用支付宝支付
准备 # 支付宝文档 https://opendocs.alipay.com/open/270/105898?pathHash=b3b2b667 # 在沙箱环境下实名认证 https://openho ...
- go NewTicker 得使用
转载请注明出处: 在 Go 语言中,time.NewTicker 函数用于创建一个周期性触发的定时器.它会返回一个 time.Ticker 类型的值,该值包含一个通道 C,定时器会每隔一段时间向通道 ...