|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
是不是实质都是API?有的好像不只是API那么简单的,有的也是一种框架就像MFC一样。有的还是一种思想(就是做软件的思想)(好像很深奥,其实我也不懂^_^).NETFramework3.5引进了REST作风的WindowsCommunicationFoundation(简称WCF)服务。除开辟和托管RESTful服务,还供应了多种选项来消耗这些服务。
WCF经由过程“web”绑定和同意公布RESTful服务的Web编程模子供应对REST撑持。RESTful服务前往一般的XML,JSON编码,大概聚合种子(syndicationfeed)。收集上有良多关于怎样编写这类服务的资本,但是对在.NETFramework中怎样消耗REST服务却言之甚少。
在SimonEvan的文章“利用Silverlight2.0消耗服务”中,他指出今朝不撑持相似SOAPWebService中那样的主动天生代办署理:消耗别的服务(比方REST)有一点难度,而且切实其实使我们惊异的一件事是,今朝还不克不及主动发生由ASP.netAJAX(经由过程WebHttpBinding)利用的代办署理。你不能不手动构建一个URI字符串,在HTTPGET哀求(REST)时利用WebClient类;关于其他HTTP动词,利用HttpWebRequest类。假如这个服务利用了JSON编码,剖析呼应可用这两种办法中的恣意一种:利用WCF的DataContractJSONSerializer(在观点上与XmlSerializer相似),大概利用LinqToJSON…… Json.NET(LinqToJSON)能够在Codeplex网站找到。作为.NETFramework3.5构成部分,LINQtoXML能够便利地剖析和消耗XML数据。
PedramRezaei注释了怎样为“来自Flickr的乐趣列表(ListInteresting)操纵”开辟一个消耗者。后来他接纳了SimonEvan所说的三步走的体例:
- 制造HTTP哀求,并将一切的参数组为URI的一部分包括出去
- 失掉XML格局的呼应
- 要末剖析它,要末把它反序列化成一个对象
即使这是一个可行的体例,但Pedram品评说:我们并没有利用WCF供应的一致编程模子,并且URL也是经由过程字符串联接弄出来的。呼应也是被手工反序列化成一个对象的。利用WCF和WebHttpBinding我们能够将尽年夜部分的事情主动化。 他接纳了一种“WCF体例”,包括以下步骤:
- 界说一个暗示服务供应者的ServiceContract。
UriTemplate包括了一切需要的参数,这些参数与其对应接口办法的参数列表完整分歧。这个办法的署名还界说了一个CLR前往范例,它从服务呼应中反序列化出XML内容。这个办法必需被用WebGet大概WebInvoke属性做注解;并且为了尽量婚配服务前往的XML,ServiceContract必需被设置为利用XmlSerializerFormat,而不是DataContractSerializer格局。
- 设置客户端端点利用“webHttpBinding”。
- 为前往值和参数界说XMLserializable范例。
- 创立客户端代办署理,创立办法:要末经由过程间接实例化ChannelFactory,要末由ClientBase承继。
欲知细节,请浏览Pedram的文章。MihailoLalevic利用了不异的体例来为eBayAPI开辟了一个消耗者,同时供应了一个WPF示例使用(源码)作为他文章的附件。
检察英文原文:ConsumingRESTServiceswithWCF
来自:http://www.infoq.com/cn/news/2008/05/consuming-rest-services-wcf那做企业软件是不是最好用J2EE? |
|