• (译)Professional Asp.Net MVC4 Chapter 11


    周末粗略读了下 Professional Asp.Net MVC4 ,与MVC3书的内容大致一样,如多了WEBAPI这一章节,所以看的很快,感觉还是WEBAPI还是蛮新异的于是凑合翻译了下,入个门

    ASP.NET Web API

    本章包含的内容?

    • 定义ASP.NET WEB API
    • WEB API入门
    • 创建一个API Controller
    • 配置WEB API
    • 比较WEB API与MVC中的路由
    • 参数绑定
    • Filter过滤Request
    • 启用依赖注入
    • 探索API编程
    • 跟踪一个应用程序

    WEB API项目诞生于想要深度集成HTTP协议的Windows Communication Foundation(WCF)团队及其客户,先前的WEB服务编程模式WCF大多是对事物的抽象,这意味着在传输的过程中隐藏很多细节。WEB API 试图改变这样的编程方式,让程序员能够直接操作HTTP的编程模型。在频繁的预览版本后,先由Henrik Frystyk Nielsen(WEBAPI Team成员之一,另一位是Http规范者之一),这个新框架能为WCF客户提供了一个替代的方式,并能够更好的控制Http协议。

    2011年,在Scott Guthrie的提议下重组了ASP.NET MVC与WCF WEB API团队,他一直致力于合并团队的努力,以便客户能够容易运用ASP.NET的知识去编写WEB APIs;团退融合各自平台的优秀的想法,最终 ASP.NET WEB API 诞生了,并随同ASP.NET MVC4运用在一起。

    定义ASP.NET WEB API

    在数字通信的今天如果有一个共同点,要属Http协议,如在我们的电脑的浏览器上,我们已经述说了二十年以上,但是现在很多人在口袋里能以智能手机的方式拥有同样功能。应用程序经常使用HTTP和JSON作为他们的信息渠道,如给家里打电话。今天的Web应用程序可能不被认为是“完成”,而是提供了某种形式的远程访问接口。

    当MVC 开发人员问我要网络接口时,我常说:”ASP.NET MVC善于接受表单数据,并生成HTML;ASP.NET WEB API 善于生成结构化数据,如JSON和XML,MVC 提供了结构化的数据的支持(JsonResult and the JSON value provider),但对于以下几种形式 提供的还不够完善,包括:

    • 基于Http协议的动作而不是行为的名称
    • 接受与生成的内容不一定是面向对象的(可能是XML,也可能是图片 PDF文件或者电子名片)
    • 允许开发人员设置Content type 的类型并生成结构化的数据
    • 托管ASP.NET运行时堆栈和IIS Web服务器,而WCF早已经能够现实了

    这个故事的重要组成部分,是WEB API团队试图引导您充分利用您现有的ASP.NET MVC的经验如 控制器,actions,过滤器,模型绑定,依赖注入等和WEB API的概念很相似,这使得相结合MVC和Web API的应用程序变的容易,作为一个全新的框架,WEB API 可以用一本书来论述 。本章节能有助于我们了解MVC与WEB API之间的异同,并帮助您决定是否在MVC在项目中运用 WEB API 。

    WEB API入门

    ASP.NET MVC4 是VS2012的组成部分 VS2010的附加部分,其安装包中就包含了ASP.NET WEB API,所有的MVC项目模板包含了必要的引用包与配置来支持MVC与WEB API,他们仅有的区别在于相同的文件默认被放在不同的位置,被标记”WEBAPI”的模板如图11-1所示,其中包含了一个API控制器的示例,任何一个MVC或API类型都能够添加到已经存在的项目中 =>在VS中 新建项 =>在控制器的项目浏览器中 =>包含创建支持EF读写操作的控制器

    image

    创建一个API Controller

    Web API与MVC一样,都依赖于控制器,然而,WebAPI 不共享MVC中的模型,视图,控制器,他们的共同之处都是把Http请求映射到控制器上,但MVC中的模式是使用一个输出模板与试图引擎,而不是与WEB API一样直接渲染结果,WebAPI直接根据模型作为响应结果,Web API和MVC控制器的设计之间的差异实际是这两个框架之间的主要区别,本节简要说明了编写一个Web API控制器和action 的基本知识。

    Examining the Sample ValuesController

  • 相关阅读:
    佛学的经典 —— 《妙色王求法偈》
    dom4j的用法
    Android真机网络adb联机调试初探
    CString的部分实现剖析
    文件下载:"Content-disposition","attachment; filename=中文名>>>解决方案
    内存块重叠的判断方法
    闭包
    Twenty Newsgroups Classification任务之二seq2sparse(5)
    IE 加速插件之 Google Chrome Frame
    [Android面试题-7] 写出一个Java的Singleton类(即单例类)
  • 原文地址:https://www.cnblogs.com/Irving/p/2799691.html
Copyright © 2020-2023  润新知