实战ASP.NET MVC Web API

    文章来源:中国互联 更新时间:2013-7-31 9:06:57
分享:

  Web API 框架基于 ASP.NET MVC 框架开发,是一个面向 Http 协议的通信框架。相对于 WCF 而言,Web API 只面向于 Http 协议设计,而且没有 WCF 那么繁琐的配置。相对于直接使用 ASP.NET MVC 来返回 Json 对象的方式而言,Web API 封装了数据的序列化、反序列化,接口、实现都更加简单。 
       简单地说,如果要向浏览器、移动端提供 Json 数据格式的 API,则应该**** Web API 作为通信框架。

以下,我列出了在当前使用 Web API 开发系统时,遇到的几个知识点或问题。

  数据序列化

  Web API 框架目前支持两种数据格式的序列化:Json 及 Xml。在不做任何配置的情况下,如果 Http 请求中,HttpHeader 中 Accept 被指定为 accept: application/xml,则 Web API 会自动把数据使用 xml 进行序列化,否则使用 json 序列化。 
    如果期望不使用 xml 序列化数据,我们可以通过 GlobalConfiguration.Configuration.Formatters 来进行配置:config.Formatters.Remove(config.Formatters.XmlFormatter)。

  一般情况下,我们会使用 Json 序列化。跟 ASP.NET MVC 的 Json 序列化不同的是,Web API 使用了 Newtonsoft.Json 框架来进行序列化。(例如,JsonMediaTypeFormatter.SerializerSettings 属性就是 Newtonsoft.Json.JsonSerializerSettings 类型,可以直接对序列化进行配置。) 
   Json 序列化支持对匿名类型进行进行序列化,这大大方便了开发人员,例如,我们可以随意组装数据并直接返回:

[HttpGet]

public IEnumerable AllGet()

{

return new string[] { "Item1", "Item2" }.Select(s => new

{

Name = s,

Code = s,

Items = new ArrayList

{

new { Name = "Item1" },

new { Name = "Item2" },

new { Name = "Item3" },

new { Name = "Item4" },

}

});

}

另外,Web API 提供了 HttpResponseMessage 类型可作为返回值,使得开发人员可以对 HttpResponse 做一些更详细的设置。而且,如果不期望修改返回值类型而直接返回 HttpResponse 时,可以使用 HttpResponseException 间接返回一个 HttpResponseMessage。

版权说明:本站原创文章,由中国互联SEO优化发表.
本文地址:https://www.hulian.top/zixun/post/5879.html
在线咨询
  • 在线时间
  • 8:00-21:00