• 助中小企业,全面提升网站营销价值,提高销售成交量了解更多
  • 实战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。

    在线咨询
    • 在线时间
    • 8:00-21:00