webapi简介及参数绑定
介绍:
WebAPI用来开发系统间接口的技术,基于HTTP协议,返回默认是json格式。比wcf简单 更通用,更轻量级,更省流量(json格式);
WebAPI尽可能复用MVC路由、ModelBinder、Filter等知识,但只是模仿
webapi默认路由机制是通过http请求类型匹配Action(REST风格),而MVC的默认路由机制是通过url匹配Action。
可以修改webapi默认路由机制,通过url匹配action
Restfull风格:
就是基于谓词语义进行通讯协议的设计(利用get、post、put、delete请求接口,并通过http状态码返回结果,但是太多不好用)
webapi参数绑定:
get请求:
可以有多个重载、多个参数
如果使用实体参数,实体参数需要加[FromUri]
post请求:
所以只能有一个参数,如果有多个参数,需要以对象的方式传递、或者JObject参数
单个参数,需要加[FromBody],键名称必须是空字符串
实体参数,不需要加[FromBody]
实体参数也可以使用JObject参数接收
可以传json格式字符串,自动绑定实体(请求类型需要设置为json格式 contentType:json)
put请求:
只能有两个参数,一个通过querystring方式传递,作为要更新对象的主键,另一个是[FromBody]字段,如果是多个字段需要封装成实体

public class ValuesController : ApiController
{
[HttpGet]
public string Index([FromUri]User user)
{
return "index1";
}
[HttpGet]
public string Index33(string name, int id)
{
return "index33";
}
[HttpGet]
public string Index2(int id)
{
return "index2";
}
[HttpPost]
public string PIndex1(int id)
{
return "pindex1";
}
[HttpPost]
public string PIndex2([FromBody]int id)
{
return "pindex2";
}
[HttpPost]
public string PIndex3(User user)
{
return "pindex3";
}
[HttpPost]
public string PIndex5(JObject jobj)
{
var user1 = jobj["UserInfo"].ToObject<User>();
var dog1 = jobj["DogInfo"].ToObject<Dog>();
return "pindex5";
}[HttpPost]
public string PIndex6(JObject jobj)
{
var usider1 = jobj["id"].ToObject<int>();
var name = jobj["name"].ToObject<string>();
return "pindex6";
}
}
public class User
{
public int ID { get; set; }
public string Name { get; set; }
}
public class Dog
{
public string DogName { get; set; }
}
webapi简介及参数绑定的更多相关文章
- WebAPI路由、参数绑定
一.测试Web API a)测试Web API可以用来检测请求和返回数据是否正常,可以使用Fiddler.Postman等工具.以Fiddler为例,这是一个http协议调试代理工具,它能够记录客 ...
- .net core Web API参数绑定规则
参数推理绑定 先从一个问题说起,微信小程序按照WebAPI定义的参数传递,Get请求服务器端可以正常接收到参数,但是Post请求取不到. Web API代码(.netcore 3.1)如下: [Htt ...
- WebAPI下的如何实现参数绑定
本文将概述在WebAPI方式下将如何将参数绑定到一个action方法,包括参数是如何被读取,一系列规则决定特定环境采用的那种绑定方式,文章最后将给出一些实际的例子. Parameter binding ...
- WebApi 参数绑定方法
WebAPI 2参数绑定方法 简单类型参数 Example 1: Sending a simple parameter in the Url 01 02 03 04 05 06 07 08 09 ...
- [译]WebAPI下的如何实现参数绑定
本文将概述在WebAPI方式下将如何将参数绑定到一个action方法,包括参数是如何被读取,一系列规则决定特定环境采用的那种绑定方式,文章最后将给出一些实际的例子. Parameter binding ...
- asp.net webapi 参数绑定总结
首先必须得更正下自己一直以来对于get请求和post请求理解的一个误区:get请求只能通过url传参,post请求只能通过body传参. 其实上面的理解是错误的,翻阅了不少资料及具体实践,正确理解应该 ...
- ASP.NET WebAPI 05 参数绑定
ParameterBindingAttribute 在上一篇中重点讲了ModelBinderAttribute的使用场景.这一篇详细的讲一下ModelBinder背后的参数绑定原理. ModelBin ...
- asp.net webapi参数绑定
content={"content": [{"comb_id": "100323","comb_name": " ...
- @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
文章主要讲解request 数据到handler method 参数数据的绑定所用到的注解和什么情形下使用. 简介: handler method 参数绑定常用的注解,我们根据他们处理的Request ...
随机推荐
- AtCoder Grand Contest 037
Preface 这篇咕了可能快一个月了吧,正好今天晚上不想做题就来补博客 现在还不去复习初赛我感觉我还是挺刚的(微笑) A - Dividing a String 考虑最好情况把每个字符串当作一个来看 ...
- 代码问题【LDES//AAAI2019】
paper:Li Y, Zhu J, Hoi S C H, et al. Robust Estimation of Similarity Transformation for Visual Objec ...
- RedisHelper (C#)
<add key="RedisServers" value="172.20.2.90:9379,password=Aa+123456789" /> ...
- PMP图表(必背)
- Elasticsearch搜索调优权威指南 (1/3)
本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/qwkZKLb_ghmlwrqMkqlb7Q英文原文:https://qbox.io/blog/ela ...
- h5py报错:FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
导入h5py的时候,报错: /home/harris/anaconda3/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: ...
- 解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
最近开发的微信公众号项目中(项目采用Vue + Vux 构建,站点部署在IIS8.5上),遇到个非常奇葩的问题,发布站点内容后,通过微信打开网址发现是空白页面(后来验证是微信浏览器缓存了入口文件-in ...
- C# - VS2019WinFrm程序通过SMTP方式实现邮件发送
前言 本篇主要记录:VS2019 WinFrm桌面应用程序通过SMTP方式实现邮件发送.作为Delphi转C#的关键一步,接下来将逐步实现Delphi中常用到的功能. 准备工作 搭建WinFrm前台界 ...
- asp.net实现页面跳转后不可以返回
window.history.go(0); Response.Write("<script> window.history.go(0);alert('恭喜user注册成功!!!\ ...
- Java生鲜电商平台-一次代码重构的实战案例
Java生鲜电商平台-一次代码重构的实战案例 说明,Java开源生鲜电商平台-一次代码重构的实战案例,根据实际的例子,分析出重构与抽象,使代码更加的健壮与高效. 1.业务说明 系统原先已有登录功能,我 ...