Web API
什么是Web API
原文链接:https://www.cnblogs.com/guyun/p/4589115.html
官方定义如下,强调两个关键点,即可以对接各种客户端(浏览器,移动设备),构建http服务的框架。
Web API在ASP.NET完整框架中地位如下图,与SignalR一起同为构建Service的框架。Web API负责构建http常规服务,而SingalR主要负责的是构建实时服务,例如股票,聊天室,在线游戏等实时性要求比较高的服务。
WebAPI的控制器与MVC控制器的主要区别:
- WebAPI控制器类继承自 ApiController 类
- WebAPI 方法返回的是原始数据,而不是视图
路由机制(对比MVC)
原文链接:https://www.cnblogs.com/landeanfen/p/5501490.html
功能
Web API的主要功能
- 支持基于Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作
- 请求的回复格式支持 JSON,XML,并且可以扩展添加其他格式。
WebApi FromBody参数
WebApi程序可在方法参数前加[FromBody]标识,表示该参数值应该从请求的Body中获取,而不是从URL中获取。
从URL获取参数值的方式的弊端是URL有长度限制,当超过浏览器的最大URL长度时请求将被浏览器拒绝,根本不会发出去。
因此,当参数值过大时需要用[FromBody]参数进行传输。
注意:通过地址栏传参时,不可以用[FromBody]
查找
// GET api/values/5
public string Get(string test)
{
//test = "王";
try
{
SqlConnection conn = new SqlConnection(constr);
//string spName = "Select * from people where name='王'";
string spName = "userinfo_sel";
SqlParameter[] selpara =
{
new SqlParameter("@name",test)
};
SqlCommand cmd = new SqlCommand(spName, conn);
cmd.CommandType = CommandType.StoredProcedure;
conn.Open();
foreach (SqlParameter parameter in selpara)
{
cmd.Parameters.Add(parameter);
}
SqlDataReader reader = cmd.ExecuteReader();
List<User> list = new List<User>();
while (reader.Read())
{
User user = new User()
{
Name = reader["Name"].ToString(),
Sex = reader["Sex"].ToString(),
Age = Convert.ToInt16(reader["Age"])
};
list.Add(user);
}
return JsonConvert.SerializeObject(list);
}
catch (Exception ex)
{
return ex.ToString();
}
}
测试api
通过在地址栏输入http://localhost:4400/api/values/get?test=%E7%8E%8B
浏览器得到的结果:
Publish——发布至IIS
https://www.cnblogs.com/zouhuayu/p/8471820.html