聊聊asp.net中Web Api的使用

简介: 扯淡     随着app应用的崛起,后端服务开发的也越来越多,除了很多优秀的nodejs框架之外,微软当然也会在这个方面提供更便捷的开发方式。这是微软一贯的作风,如果从开发的便捷性来说的话微软是当之无愧的老大哥,只是鱼和熊掌不能兼得,各种语法糖带来开发的便利势必会牺牲程序运行的性能,这是无可避免的,通用和效率永远是需要程序员去取舍的话题。

扯淡

    随着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")

 

 

 

 

img_fa0be433d68c8212b2b0b3b1a564ccb1.png
如果本文对你有所帮助,请打赏——1元就足够感动我:)
支付宝打赏 微信打赏
联系邮箱:intdb@qq.com
我的GitHub: https://github.com/vipstone
关注公众号: img_9bde0f31ac4a0eca10b1bd7414b78faf.png


作者: 王磊
出处: http://vipstone.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,请标明出处。

相关文章
|
开发框架 JSON .NET
使用 ASP.NET Core 创建 Web API系列
使用 ASP.NET Core 创建 Web API系列
259 0
|
开发框架 JSON 前端开发
ASP.NET Web API入门介绍(一)
ASP.NET Web API入门介绍(一)
199 0
|
开发框架 JSON 前端开发
6.3 ASP.NET Core Web API技术选择
ASP.NET Core Web API技术选择
6.3 ASP.NET Core Web API技术选择
|
开发框架 前端开发 .NET
ASP.NET Core Web API 使用小技巧
ASP.NET Core Web API 使用小技巧 一、前言#  在目前的软件开发的潮流中,不管是前后端分离还是服务化改造,后端更多的是通过构建 API 接口服务从而为 web、app、desktop 等各种客户端提供业务支持,如何构建一个符合规范、容易理解的 API 接口是我们后端开发人员需要考虑的。
1534 0
|
Web App开发 JSON .NET
|
.NET API 开发框架
Asp.Net Web API(六)
Asp.Net Web API不可以需要IIS。可以自己在主机上承载一个Web API      创建WebAPI.Server项目  创建一个控制器项目的服务端    在Nuget中添加Microsoft.
1302 0
|
算法 前端开发 .NET
Asp.Net Web API(三)
Routing Tables路由表     在Asp.Net Web API中,一个控制器就是一个处理HTTP请求的类,控制器的public方法就被叫做action方法或简单的Action。当Web API接收到一个请求的时候,它将这个请求路由到一个Action。
1015 0
|
.NET API 开发框架
Asp.Net Web API(四)
HttpResponseException-----HTTP响应异常     如果Web API控制器抛出一个未捕捉的异常,会发生什么呢?在默认情况下,大多数异常都会转换为一个带有状态码500的内部服务器错误的HTTP响应。
1029 0
|
前端开发 .NET API
Asp.Net Web API(二)
创建一个Web API项目 第一步,创建以下项目 当然,你也可以创建一个Web API项目,利用 Web API模板,Web API模板使用 ASP.Net MVC提供API的帮助页。 添加Model       一个模型就是在你的应用程序中展示数据的一个对象。
802 0
|
前端开发 .NET API
Asp.Net Web API(一)
什么是Web API           HTTP不仅仅服务于Web Pages。他也是一个创建展示服务和数据的API的强大平台。HTTP是简单的,灵活的,无处不在的。你能够想象到几乎任何的平台都会有HTTP服务库。
1008 0