聊聊asp.net中Web Api的使用
扯淡
随着app应用的崛起,后端服务开发的也越来越多,除了很多优秀的nodejs框架之外,微软当然也会在这个方面提供更便捷的开发方式。这是微软一贯的作风,如果从开发的便捷性来说的话微软是当之无愧的老大哥,只是鱼和熊掌不能兼得,各种语法糖带来开发的便利势必会牺牲程序运行的性能,这是无可避免的,通用和效率永远是需要程序员去取舍的话题。扯淡到这就完了,下来就聊聊今天的主角web api,web api 是mvc4.0之后出现的一种技术吧,他的创建和带来的便利我就不介绍了。这边文章主要聊聊,我对web api开发的一些理解。
话题一:[FromBody]特性修饰符
FromBody是一个修饰参数的特性,比如:public void Post([FromBody]string name),那么他的作用是什么呢,其实他的作用是查询post请求中参数为name的值。
要注意的是:[FromBody]只能修饰单个参数,如果是多个参数的话,就要封装成对象进行数据专递了,比如:public void Post([FromBody]string name,[FromBody]int id)是取不到值的,要把id和name封装成Userinfo对象,使用 public void Post([FromBody]Userinfo user)进行调用。
话题二:post传递多个不同对象的参数
已经post请求需要使用[FromBody]特性修饰符接收,但是FromBody只能接收单个参数,如果需要传递不同对象的输出就比较麻烦了,新建实体对象成本太大,也不能完全适应适应的类型,这个时候需要使用JObject来处理,代码如下:
jQuery.post("/Api/Userinfo/Add/", {mobile: "18049579804",pwd: "123456",smsCode: "12346",t: new Date().getTime() }, function (data) {if (data) {document.writeln(data);} });
public string Add([FromBody]JObject pdata) {string mobile = Convert.ToString(pdata["smsCode"]);string pwd = Convert.ToString(pdata["pwd"]);string smsCode = Convert.ToString(pdata["smsCode"]); }
话题三:请求方式(Get & Post)
关键字区分:Get请求或者Post请求,可以用自身的关键字来区分,比如:GetUser(int id)肯定为get请求,Getxxx(params param)等格式为Get请求,post同理。当然还有一种方式,是没有关键字修饰的方法,比如:FindUser这种情况下,这种请求下默认是Post请求的Get请求就会报405的错。
话题四:返回json格式的结果
这个会简单设置返回值为Net自带的Json格式即可,可以返回JObject或JArray都是可以用ajax接收json对象的。代码如下:
public JObject PostFindUser([FromBody]Userinfo user) {JObject res = new JObject();res["name"] = string.Format("{0}是好人~", user.Name);return res; }
话题五:路由设置
本身的路由不是很好,需要设置WebApiConfig.cs配置为:控制/动作/参数
config.Routes.MapHttpRoute(name: "DefaultApi",routeTemplate: "api/{controller}/{Action}/{id}",defaults: new { id = RouteParameter.Optional } );
题外话:webapi获取http header信息代码:Request.Headers.GetValues("xxx")
聊聊asp.net中Web Api的使用相关推荐
- 在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务
在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务 https://procodeguide.com/programming/polly-in-aspnet-core ...
- NET问答: 如何在 ASP.NET Core Web API 的 Response 中添加自定义的 Header ?
咨询区 JDawg: 我正在将 Web API 2 移植到 ASP.NET Core Web API 上,以前我都直接在 Response 属性上添加自定义的 Header,如下代码所示: HttpR ...
- ASP.NET Core Web API中使用Swagger
本节导航 Swagger介绍 在ASP.NET CORE 中的使用swagger 在软件开发中,管理和测试API是一件重要而富有挑战性的工作.在我之前的文章<研发团队,请管好你的API文档& ...
- ASP.NET Core Web API 集成测试中使用 Bearer Token
在 ASP.NET Core Web API 集成测试一文中, 我介绍了ASP.NET Core Web API的集成测试. 在那里我使用了测试专用的Startup类, 里面的配置和开发时有一些区别, ...
- [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了
园子里关于ASP.NET Core Web API的教程很多,但大多都是使用EF+Mysql或者EF+MSSQL的文章.甚至关于ASP.NET Core Web API中使用Dapper+Mysql组 ...
- ASP.NET Core Web API下事件驱动型架构的实现(四):CQRS架构中聚合与聚合根的实现
在前面两篇文章中,我详细介绍了基本事件系统的实现,包括事件派发和订阅.通过事件处理器执行上下文来解决对象生命周期问题,以及一个基于RabbitMQ的事件总线的实现.接下来对于事件驱动型架构的讨论,就需 ...
- ASP.NET Core Web API下事件驱动型架构的实现(二):事件处理器中对象生命周期的管理
在ASP.NET Core Web API下事件驱动型架构的实现(一):一个简单的实现中,我介绍了事件驱动型架构的一种简单的实现,并演示了一个完整的事件派发.订阅和处理的流程.这种实现太简单了,百十行 ...
- 在docker中运行ASP.NET Core Web API应用程序
本文是一篇指导快速演练的文章,将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤,在介绍的过程中,也会对docker的使用进行一些简单的描述.对于.NET Cor ...
- 如何测试ASP.NET Core Web API
在本文中,我们将研究如何测试你的ASP .NET Core 2.0 Web API解决方案.我们将了解使用单元测试进行内部测试,使用全新的ASP .NET Core的集成测试框架来进行外部测试. 本文 ...
最新文章
- 【C++】38.类成员变量声明为 对象与指针的区别
- Bundle/Intent传递序列化参数暗藏杀机
- 】.NET使用NPOI组件将数据导出Excel
- python构建字典查大写英文字母ascii编码_python – 字典中ISO短代码的国家名称,如何处理非ascii字符...
- 认识Spring以及环境的配置
- [Lintcode]102. Linked List Cycle/[Leetcode]
- ORA-01502: 索引或这类索引的分区处于不可用状态 [已解决]
- SQL 连接 JOIN 例解。(左连接,右连接,全连接,内连接,交叉连接,自连接)...
- Linux内核源码下载
- 在互联网上,没有人知道你是一条狗?
- 全国计算机一级2021选择题,2021年度全国计算机一级考试选择题试题与详细答案.doc...
- Oracle 11g详细安装介绍plsql下载和安装介绍
- 外贸企业邮箱域名怎么注册?企业邮箱申请域名流程?
- 雨落阅读量突破1000!
- Bug算法(Bug Algorithms)简介(Bug1 Bug2 Tangent Bug)
- 要成就事业,更要分享快乐 记上海润邦(集团)有限公司董事长兼总经理李东
- Linux-shell脚本基础
- 哥德尔递归汉译和原始递归——哥德尔原著英译拆解汉译之七
- 【吊打面试官】计算机基础知识
- 阿尔法围棋是人工智能吗,围棋智能机器人阿法狗
热门文章
- 与安装应用签名不同怎么解决_天堂巴比伦 安卓游戏安装失败怎么解决
- C语言 | 编程实现6
- 计算机一级单元格公式设置错误是什么原因,excel表格公式出错怎么解决,电子表格求和出错...
- oracle数据库恢复aul_RMAN备份与恢复 —— 完全恢复与不完全恢复
- 需要在函数中传递的变量
- rust实战入门到进阶(3)
- 操作系统设计与实现第3版笔记与minix3心得(4)-操作系统发展历史(2)
- PowerBI随笔(3)-增加自定义列
- 【深度学习】超级赞!N个神经网络可视化利器
- 【NLP】ALL in BERT:一套操作冲进排行榜首页