从.NET中的REST API中获取JSON的最佳方式

时间:2011-12-30 18:13:59

标签: .net rest

我正在使用c#中的.net Web应用程序,我需要从第三方使用REST服务(他们没有使用WCF)。我来自使用Web服务调用的背景,其中有可用的WSDL,Visual Studio将构建所有底层代码,然后我就准备好了。

是否没有可以在某种程度上模拟此行为的工具或框架?我知道没有合同就没有办法让工具知道会发生什么,但我认为我可以通过一个向导来提供参数来进行REST调用,然后帮助向导计算出响应的细节。在流程结束时,我将拥有一组对REST API进行建模的对象,类似于Web服务的行为方式。

我知道REST和JSON对他们有一些很大的好处,但缺乏一个标准的开箱即用合同以允许自动代码生成似乎是一个倒退的真正步骤。

我是否遗漏了一些明显的东西,或者只是当在.NET中使用REST时的当前状态?我真的需要为每个新的API编写样板代码吗?

2 个答案:

答案 0 :(得分:5)

您可以使用RestSharp来访问REST API。我提供了一个示例,包括使用AutoMapper从this SO question上的数据传输对象转到域模型的方法。

答案 1 :(得分:2)

我建议查看WCF REST Starter Kit All up page

在此处下载:WCF REST Starter Kit Preview 2

此处的文档:WCF Rest Starter Kit GUide向下滚动到'使用HttpClient使用RESTful服务'

您将最终使用ReadAsJasonDataContract,例如

HttpResponseMessage resp = http.Get("friends_timeline.json");
resp.EnsureStatusIsSuccessful();
ProcessStatusesAsDataContract(resp.Content.ReadAsJsonDataContract<statusList>());

这看起来是一个合理的方法How-2 on CodeProject

如果您想要更多地亲自动手并希望获得更多性能,那么执行您自己的Web请求并使用JSON.NET来处理序列化是另一个不错的选择。 JSON.Net(披露JSON.Net由同事撰写)