WebAPI学习(一)——创建Web API程序


   引言


   在公司中用到的都是webAPI的应用程序,这个东西之前没有接触过。但是这个并不是什么新鲜的东西,因我们


之前有mvc的基础,所以说学习这个东西还是比较容易的,在开始的时候自己可能突然蒙圈了。因为在人家项目中用


到的东西自己之前都没有接触过,感觉非常的陌生甚至整个混乱了。但是当我们静下心来好好想想的话是非常容易


的,就是在某些写法上不太一样,其余的都差不多,下面就给大家创建第一个程序。


  创建一个Web API程序


   启动VS2012创建一个新项目,在已经安装的模板中选择 ASP.NET MVC4 Web API程序


WebAPI学习(一)——创建Web API程序_第1张图片 


   在ASP.NET MVC项目对话框中选择Web API项,点击确定 


    WebAPI学习(一)——创建Web API程序_第2张图片   


   创建成功之后工程中会自动添加一个Web API服务控制器,上面并附带访问地址 


   WebAPI学习(一)——创建Web API程序_第3张图片 


   项目解决方案,选择Models文件夹右键 添加一个Model类 



 WebAPI学习(一)——创建Web API程序_第4张图片



   代码如下: 


namespace Git.Framework.WebAPI.Models
{
    public class Contact
    {
        public int ID { getset; }

        public string Name { getset; }

        public string Sex { getset; }

        public DateTime Birthday { getset; }

        public int Age { getset; }
    } }

 

 工程解决方案选择Controllers文件夹右键添加一个新的Web API controller

 WebAPI学习(一)——创建Web API程序_第5张图片

 在添加控制器弹出对话框中选择模板: 空API控制器

    WebAPI学习(一)——创建Web API程序_第6张图片   


   控制器中添加如下代码: 


namespace Git.Framework.WebAPI.Controllers
{
    public class ContactController : ApiController
    {
        Contact[] contacts = new Contact[] 
        { 
            new Contact(){ ID=1, Age=23, Birthday=Convert.ToDateTime("1977-05-30"), Name="情缘", Sex=""},
            new Contact(){ ID=2, Age=55, Birthday=Convert.ToDateTime("1937-05-30"), Name="令狐冲", Sex=""},
            new Contact(){ ID=3, Age=12, Birthday=Convert.ToDateTime("1987-05-30"), Name="郭靖", Sex=""},
            new Contact(){ ID=4, Age=18, Birthday=Convert.ToDateTime("1997-05-30"), Name="黄蓉", Sex=""},
        };

        /// 
        
/// /api/Contact
        
/// 

        
/// 
        public IEnumerable GetListAll()
        {
            return contacts;
        }

        /// 
        
/// /api/Contact/id
        
/// 

        
/// 
        
/// 
        public Contact GetContactByID(int id)
        {
            Contact contact = contacts.FirstOrDefault(item=>item.ID==id);
            if (contact == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }
            return contact;
        }

        /// 
        
/// 根据性别查询
        
/// /api/Contact?sex=女
        
/// 

        
/// 
        
/// 
        public IEnumerable GetListBySex(string sex)
        {
            return contacts.Where(item => item.Sex == sex);
        }
    }}

 

 浏览器访问API路径


Controller Methed

URI

GetListAll

/api/Contact

GetListBySex

"/api/Contact?sex=" + sex

GetContactByID

/api/Contact/"+id

 

   在IE浏览器中浏览出现如下效果


   WebAPI学习(一)——创建Web API程序_第7张图片 


   如果在Chrome 或者 FireFox 中浏览会先下如下效果


 

WebAPI学习(一)——创建Web API程序_第8张图片 

 

 Javascript访问Web API


 在项目中添加一个About View视图


   WebAPI学习(一)——创建Web API程序_第9张图片


  代码如下:


@{
    Layout = null;
}





    
    About
    
    


    

 

 

 



 

   运行结果效果图


    WebAPI学习(一)——创建Web API程序_第10张图片


  Web API总结


    1.Web API 控制器(Controller) 继承ApiController


    2. Api 的 Url Map: api/{controller}/{id} 每个"Action"是通过 Http谓词(GET/POST/PUT/DELETE)映射的


   3.客户端可以通过 Http Header 的 Accept 指定返回数据的格式。默认是支持:appliction/xml 和


 application/json,当想返回比如 image/jpeg 这样的图片格式时,需要添加 MediaTypeFormatter 。比如:当


指定某个 Task 时,通过指定 Accept : image/jpeg 获取该 Task 的图片信息。

    



你可能感兴趣的:(@项目学习)