Visual Studio 2012 中的ASP.NET Web API

本文深入探讨了Web服务技术,包括SOAP和RESTful API的区别,以及它们在不同场景下的应用。通过实际代码示例,展示了如何使用ASP.NET Web API在C#与JSON世界之间轻松转换数据,以及JSON.NET库在动态对象反序列化方面的优势。重点介绍了如何在ASP.NET Web API中利用JToken实现动态操作,以及C#静态类型与JavaScript灵活性的结合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

restsoap

有的企业 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窗口:

Using JToken to catch a JSON payload

 

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

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

再次注意Watch窗口。

Using dynamic to catch JSON post payloads

查看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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值