Visual Studio 2012 中的ASP.NET Web API

有的企业 Web 服务使用 SOAP 和 WS-*.*它们对许多事务性或复杂的方案来说很不错。然后还有更轻量级的RESTful web 服务或"Web API",它们使用 JSON,XML,展示了所有的好东西和HTTP 规范的稳定性。

WCF 过得好好的, ASP.NET 也如此,每种技术都有使用其的理由。正如这篇文章说得好, "SOAP的世界与HTTP 服务的世界是完全不同的。SOAP 允许我们将我们的服务所需的所有知识放在信息本身中",而"您可以使用 [Web API] 来创建只使用标准HTTP 概念 (URI 和动词)的HTTP服务,和创建使用更高级的 HTTP功能的服务 — — 请求/响应标头,超媒体概念等。

Kelly Sommers澄清REST中撰写了我认为是REST的最好诠释,无论你想编写 RESTful专注于资源的 HTTP 服务还是只是POX或 POJ (Plain Old XML 或Plain Old JSON) 服务,你能使用ASP.NET Web API做到这两点。它是ASP.NET 开源的Web栈的所有部分。

ASP.NET Web API Samples on Codeplex,看到C# 协议对象如何在 JSON 世界和 C# 世界之间轻易来回移动了吗? 正是JSON.NET 开放源码库实现了这一目标。

JSON 和 JavaScript真的是动态的,不过通常它是件麻烦事来尝试将真的动态的 JSON 对象反序列化为强类型的.NET结构。JSON.NET 和 ASP.NET Web API 的模型绑定提供了一个开心的介质——一个中间背景——被称为 JToken。

   1: public class ContactController : ApiController
   2: {
   3:     public JToken Post(JToken contact)
   4:     {
   5:         return contact;
   6:     }
   7: }

当 JSON导入时, 请查看Watch窗口:

JToken 给予我一个动态的容器,而也是一个类似于 DOM 的导航模型。但如果对我来说不够动态的话,为什么我的方法的参数不能只采取一种"动态"。

C# 是静态类型,这是肯定的,但这并不意味着我不能静态化动态的东西。;)

再次注意Watch窗口。

查看JSON 如何在系统中移动,而没有任何不匹配的阻拦。C#并没有降低JavaScript 和 JSON 的灵活性。

以上内容来自:微小的开心功能第2部分-Visual Studio 2012 中的ASP.NET Web API

MVC4 WebAPI(一)

MVC4 WebAPI(二)——Web API工作方式

http://www.west-wind.com/weblog/posts/2012/Nov/13/DevConnections-Session-Slides-Samples-and-Links

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏walterlv - 吕毅的博客

DependencyProperty.UnsetValue 的正确打开方式

2017-10-10 15:21

9030
来自专栏角落的白板报

【公开课】ABP CORE 框架入门视频教程《电话薄》基于 Asp.NET Core2.0 EF Core

ABP框架简介 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。 ASP.NET Boilerplate是...

50540
来自专栏Albert陈凯

2018-05-17 架构师技能图谱,搞懂这些找工作无敌数据结构常用算法并发操作系统设计模式运维 & 统计 & 技术支持中间件网络数据库搜索引擎性能大数据安全常用开源框架分布式设计设计思想 & 开发模

1.4K50
来自专栏施炯的IoT开发专栏

Application Architecture Guide 2.0 - CH 19 - Mobile Applications(5)

本文翻译"Deployment"、"Pattern Map"、"Pattern Descriptions"和"Technology Considerations...

21270
来自专栏walterlv - 吕毅的博客

Roslyn 的确定性构建

2018-03-31 09:22

13420
来自专栏cnblogs

directshow、 Emgucv入门

本示例主要测试了directshow、Emgucv的视频流采集功能,其中Emgucv还实现了人脸的识别。示例源码下载 一、directshow的介绍 实现原理:...

31590
来自专栏小樱的经验随笔

深入理解USB流量数据包的抓取与分析

在一次演练中,我们通过wireshark抓取了一个如下的数据包,我们如何对其进行分析?

42420
来自专栏java架构学习交流

如何用比较快速的方法掌握Spring的核心——依赖注入,Java web轻量级开发面试教程 读书笔记

      我们知道,Java方面的高级程序员一定得掌握Spring的技能,其中包括Spring 依赖注入(IOC),面向切面(AOP),和数据库的整合(比如和...

224100
来自专栏葡萄城控件技术团队

如何在 ASP.NET MVC 中集成 AngularJS(3)

今天来为大家介绍如何在 ASP.NET MVC 中集成 AngularJS 的最后一部分内容。 调试路由表 - HTML 缓存清除 就在我以为示例应用程序完成之...

233100
来自专栏racaljk

Erlang调度器细节探析

Erlang的很多基础特性使得它成为一个软实时的平台。其中包括垃圾回收机制,详细内容可以参见我的上一篇文章Erlang Garbage Collection D...

34830

扫码关注云+社区

领取腾讯云代金券