将ServiceStack客户端与非ServiceStack REST服务配合使用 [英] Using ServiceStack Client with Non-ServiceStack REST Services

查看:28
本文介绍了将ServiceStack客户端与非ServiceStack REST服务配合使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在使用ServiceStack的DataContract API+*ServiceClient从标准的XML/JSON REST服务中获得适当的反序列化时遇到了一些问题。例如,如果我们采用以下输出(使用Accept Header获取json):

http://rxnav.nlm.nih.gov/REST/RxTerms/rxcui/198440/allinfo

  1. 如何构建模型对象以处理 来自该服务JSON输出和HTE XML输出(使用Accept 获取json的标头)?

  2. 您是否需要在 DataContract和DataMember属性以获取相应的 反序列化?

  3. ServiceStack如何将XML/JSON对象名称与 模型中的属性名称?它们区分大小写吗?

  4. 我们能否在JsonRestClientAsync中无缝地获得某种泛型Func委托API 集成我们自己的反序列化机制,其中我们需要处理第三方格式 与?

是的,我知道我可以使用ServiceStack.Text进行显式反序列化。我几乎在我的所有.NET项目中都采用了这种依赖关系:-)

谢谢,

Anuj

JSON

如果它是第三方Web服务(即不是ServiceStack Web服务),那么我只会尝试解析它们的一种格式,我个人更喜欢推荐答案,以便在他们改变API时具有更好的弹性。如果尝试用相同的模型来支持不同的格式,这将是一个失败的提议,他们随时都可以轻易地打破这一点。

对于ServiceStack的JSON序列化程序,在最新版本中,属性不区分大小写,您可以设置JsConfig.EmitCamelCaseNames=true让它发出CamelCase名称。See this unit test

如果希望属性名称与生成的名称不同,它现在还会考虑[DataMember(Name="custom")]参数。

这篇关于将ServiceStack客户端与非ServiceStack REST服务配合使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆