好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Asp.net Web API实战

Asp.net Web API实战

Asp.net Web API实战

2012-08-09 17:46 by slmk, 317 阅读,  0  评论,  收藏 ,  编辑

      工作中需要暴露一些功能,或者说API供其他系统调用,其他系统可能是Winform,WPF,Asp.net或者是Mobile客户端。当然可以用Web Service或是WCF来实现,但是自己偏向于尝试新的东西,于是,就打算用Asp.net Web API来实现,也来体验一把RESTFull框架。初次使用,把大体过程记录下来,美名曰“实战”,实际算是入门指导吧。

      Asp.net Web API是通过Http协议将API暴露给客户端,很多东西与ASp.net MVC很相似,其实她本身就包含在Asp.net Mvc 4里面的。下面开始实战:

安装Asp.net Mvc 4,从这里安装: http://www.asp.net/mvc/mvc4 。安装时间大概半小时的样子。支持VS 2010学习版。 新建项目,选择“Asp.net MVC 4 Web Application”项目类型,然后选择Web API:

  3. 重点看一下Controller下面的ValuesController类,这个类暴露了以下API:

 public   class   ValuesController : ApiController
    {
          //   GET api/values 
         public  IEnumerable< string >  Get()
        {
              return   new   string [] {  "  value1  " ,  "  value2  "   };
        }

          //   GET api/values/5 
         public   string  Get( int   id)
        {
              return   "  value  "  ;
        }

          //   POST api/values 
         public   void  Post( string   value)
        {
        }

          //   PUT api/values/5 
         public   void  Put( int  id,  string   value)
        {
        }

          //   DELETE api/values/5 
         public   void  Delete( int   id)
        {
        }
    } 

熟悉http协议的话,上面的很好懂了。F5运行,我用Chrome浏览器测试:

这里返回的是xml格式的,这是因为Chrome自动添加了"Accept:Application/Xml"请求头(各位如何让Chrome返回Json呢?)。默认返回Json格式。

至于URL是如何路由的,熟悉MVC的应该很清楚了。看看App_Start/RouteConfig.cs,当然我们可以在这里配置自己的路由。

  4. 客户端如何调用服务器端的API:

通常我们使用HttpClient类,可以看看dudu老大写的 HttpClient  + ASP.NET  Web   API , WCF之外的另一个选择

我这里演示如何使用简单的WebClient来调用,使用WebClient的原因是:不像HttpClient,它不需要.net framework4.0。

WebClient wc =  new   WebClient();
wc.Headers.Add(  "  Accept:Application/Json  " );  //  这一行不要,结果是一样的 
 string  json = wc.DownloadString( "  http://localhost:4391/api/values  "  );
  var  ss= JavaScriptConvert.DeserializeObject< string []>(json);

这里Json解析使用的是第三方Newtonsoft.Json,我用的是很老的版本了。 这里 下载最新版本。

这个第三方库比微软自带的都要好用,而且很强大的,同时支持.net和Sivlerlight,据说速度是最快的。

Web Api是根据客户端的Accept请求头,自动返回相应格式的数据,默认是JSON格式。

  5. 实战结束。:)

 

分类:  Asp.net

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于Asp.net Web API实战的详细内容...

  阅读:46次