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

Kyw*_*lis 9 .net rest

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

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

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

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

Pet*_*ete 5

您可以查看使用RestSharp访问REST API.我给出了一个示例,包括在此SO问题上使用AutoMapper从数据传输对象转到域模型的方法.


小智 2

我建议查看WCF REST Starter Kit All up 页面

此处下载:WCF REST 入门工具包预览 2

此处的文档:WCF Rest Starter Kit GUIde向下滚动到“Consuming RESTful Services with HttpClient”

您最终将使用 ReadAsJasonDataContract 例如

HttpResponseMessage resp = http.Get("friends_timeline.json");
resp.EnsureStatusIsSuccessful();
ProcessStatusesAsDataContract(resp.Content.ReadAsJsonDataContract<statusList>());
Run Code Online (Sandbox Code Playgroud)

这看起来是 CodeProject 上合理的操作指南How-2

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