.NET Web API 新手遇到的那些“坑”
以前一直做web项目,用的mvc。最近公司需要上线APP,准备用webAPI做接口,用习惯了MVC,API还是有好多细节的地方感觉很“坑”...
第一个坑,webAPI的默认路由规则不一样,通过命名来匹配调用方式,只匹配controller和参数,不匹配action...偶,NO!叫我这个使用了快两年MVC的小码农如何能承受如此重的打击!!!二话不说,咔咔咔,路由配置加上了action...心情瞬间舒畅了不少,再望望窗外的灰蒙蒙的天,我分明看见了蓝天与白云。
第二个坑,一个简单参数的POST方法愣是获取不到传入的值。整整一个上午啊,折腾来折腾去的,在损失了本来就不多的数十根头发与上万个头皮细胞后终于找到了答案:多参数POST提交,接口需要把参数们写进一个对象,再加上[FromBody],万事OK;一个简单参数的POST接口肯定不能做成一个对象,因为偶是一个非常有洁癖的码农,于是乎,开始了和百度的搜索大战....不搜不知道,一搜吓一跳,原来webAPI都出来好几年了!原来早在12年大神门就已经在博客园里讨论过了...12年我在干嘛呢,恩,想想~才大二大三啊我去,不是在勾搭小学妹就是在撸啊撸...好吧,为了表示我也为这个问题努力过,贴上别人的一些解决方法:建个类,参数扔里面,一个参数也这么干,这是其一。接口这么写[FromBody] string content,据说jquery 这么写$.post('/api/wocao' ,{'':'坑爹货'} )是没问题的,具体神马Android啊IOS啊,话说关我鸟事,到时候,拿jquery给他们看“我jquery都能实现,你们做不了肯定是你们的问题,自己想办法去...”想起来都比较开心。
再来说说第一个坑,像楼主我这么做肯定是不合适滴,上文才说了,哥是一个有节操的程序猿!!!好吧,路由改回去,action命名按规则来,这种[HttpGet][HttpPost]标签全部干掉,咱也写一把RESTful标准的API接口,做一次正规军,做个好码农,做个好男子...可是,尼玛一个controller里面有两个接口的参数就是一模一样肿么办?表说不可能,写着写着绝逼的会出现这问题,心中十万匹草泥马奔过...你知道逼着一个有节操的程序员去把很优美的参数名称改掉是一件多么惨绝人寰的事,至少我是含着泪改完的。都怪自己当时高考填志愿的时候相信了同桌阿花的建议,不过想着他现在正在甘肃的某个深山里面铺铁轨,我心也就平衡了些许。
好吧,下班了。其他“坑”,明天再来掰扯...
.NET Web API 新手遇到的那些“坑”的更多相关文章
- Web API返回JSON数据
对Web API新手来说,不要忽略了ApiController 在web API中,方法的返回值如果是实体的话实际上是自动返回JSON数据的例如: 他的返回值就是这样的: { "Conten ...
- 在Web API中使用Swagger-UI开源组件(一个深坑的解决)
介绍: Swagger-Ui是一个非常棒的Web API说明帮助页,具体详情可自行Google和百度. 官网:http://swagger.io/ GitHub地址:https://github ...
- (一)Asp.net web api中的坑-【找不到与请求 URI匹配的 HTTP 资源】
在.net下,创建一个HTTP服务,有很多方案,比较老ashx,一般处理程序(HttpHandler), Web Service SOAP协议的,数据格式是XML,HTTP协议 WCF ...
- Web api配置填坑攻略
最近开始使用web api,开发调试过程还算顺利,现在项目已经发布,网站已经部署,结果浏览过程出现问题(不出问题好像不正常吧……),做个note开始填坑. 1.1号坑 咋一开始就爆出另一个程序正在使用 ...
- 使用 asp.net Web API 2的坑
使用工具: Googl 浏览器+PostMan 插件 写了个 控制器 添加了个Action,结果呢?GET 方式请求没问题. POST一直,在服务器端获取不了参数...找了官方的文档 .各种雨里雾 ...
- ASP.NET Web API 跨域访问(CORS)
一.客户端用JSONP请求数据 如果你想用JSONP来获得跨域的数据,WebAPI本身是不支持javascript的callback的,它返回的JSON是这样的: {"YourSignatu ...
- Web API Get Started First
注:此博客是自官网修剪而来,博主IT新手 一.web api与web service的不同: web api是基于Http协议,而web service是基于soap协议.两协议的区别小子看了很多,但 ...
- 当 jquery.unobtrusive-ajax.js 遇上Web API
最近在熟悉Abp框架,其基于DDD领域驱动设计...前段可以绕过mvc直接调用根据app层动态生成的webapi,有点神奇~,Web API之前有简单接触过,WCF的轻量级版,一般用于做一写开发性的服 ...
- Gitlab CI 自动部署 asp.net core web api 到Docker容器
为什么要写这个? 在一个系统长大的过程中会经历不断重构升级来满足商业的需求,而一个严谨的商业系统需要高效.稳定.可扩展,有时候还不得不考虑成本的问题.我希望能找到比较完整的开源解决方案来解决持续集成. ...
随机推荐
- c#的那些有效性判断
在开发中合理的对象有效性判断是程序健壮性的重要保障,也有利于提高程序的执行效率.本人简单总结了几个需要判断对象是否为空的例子,分享如下: 一.集合对象中可以包含空对象,遍历集合对象时要同时判断集合中的 ...
- 原生JS:严格模式详解
严格模式 本文参考MDN做的详细整理,方便大家参考[MDN](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript) 设计目的 设立”严格模式 ...
- JS中用new创建对象与不用new创建对象区别:
function classA() { console.log(this); var that = this == window ? {} : this; that.name = "clas ...
- 12种不适宜使用的javascript语法
1. == (o゜▽゜)o☆[BINGO!] Javascript有两组相等运算符,一组是==和!=,另一组是===和!==.前者只比较值的相等,后者除了值以外,还比较类型是否相同. 请尽量不要使用前 ...
- 基于git diff进行的eslint代码检测
缘起 在项目中, 通常都会使用代码检测工具来规范团队的代码风格, 比如eslint.随着代码的不断增加, eslint进行代码检测的时间也越来越久.每次检测的时候, 需要检测的文件和实际检测的文件极度 ...
- UITableView优化
作为iOS开发,UITableView可能是平时我们打交道最多的UI控件之一,其重要性不言而喻. 关于TableView,我想最核心的就是UITableViewCell的重用机制了. 简单来说呢就是当 ...
- Android Studio安装配置、环境搭建详细步骤及基本使用
前言 Android Studio的安装配置及使用篇终于来啦~ 废话不多说,以下针对JDK正确安装(及其环境变量配置完毕,即Java开发环境下).Android Studio的安装,配置,以及创建工程 ...
- 通过API执行AutoCAD命令来…
大家知道AutoCAD功能丰富,而更可贵的是,这么多丰富的功能背后都有一个命令,有些东西,直接用API调用写起来可能很费劲或者无法实现,可如果能用命令的话却很简单,这时候我们就可以通过API来调用Au ...
- 优质Android小部件:索尼滚动相册
虽然骚尼手机卖的不怎么样,但是有些东西还是做的挺好的,工业设计就不用说了,索尼的相册的双指任意缩放功能也是尤其炫酷.其桌面小部件滚动相册我觉得也挺好的,比谷歌原生的相册墙功能好多了,网上搜了一下也没发 ...
- 【iOS】Alamofire库在iOS7下设置Head无效的问题
声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文 同样的代码在iOS8下没有问 ...