当前位置: 首页 > 面试题库 >

提供SOAP / XML + REST / JSON的最佳方法是什么?

淳于升
2023-03-14
问题内容

我正在创建一个通用的Web服务,该服务可能有许多不同的客户端,但有些客户端目前无法预料。

我已经有了一个不错的Java Services API,并希望在此之上提供一个Web服务外观。

SOAP与REST辩论的双方都有很多争论,这让我想知道是否有一种简单的方法可以同时提供两者?不一定要在同一时间将两者都用于同一部署(尽管可能不错)……而是向客户提供选择。


问题答案:

不,没有。SOAP和REST是非常不同的体系结构,以至于任何易于使两者都容易实现的html" target="_blank">框架可能对它们之一做得不好。

尽管很容易将一组函数或方法获取到WSDL文件中,但是SOAP端点等等是因为函数和SOAP基本上都做相同的事情,而对发生的事情没有任何限制。调用者使用多个参数设置函数调用,将其激发并(通常)等待响应或异常。

有人认为为每种方法创建HTTP端点足以创建RESTful端点,但事实并非如此。但是,使这样的HTTP端点对您仍然有意义,在这种情况下,您应该继续寻找提供此功能的框架。

我的回答以“不,不存在”开头的原因是,为了创建REST接口,仅发布HTTP端点还不够,您需要做很多工作:

  • 寻找可重复使用的媒体类型
  • 寻找链接关系以重用
  • 设计自己的媒体类型
  • 定义自己的链接关系

而且,世界上没有一种框架可以采用任意函数签名列表来为您完成这四件事。框架允许您比SOAP更好地利用HTTP(例如OAuth,OpenID,缓存,幂等),但是它们并不能带您完全到达REST。



 类似资料:
  • 问题内容: 我只是从ReactJS开始,并尝试了其他类似问题的解决方案,但到目前为止还算不上成功。 这是我的工作代码: 但是当我将Numbers Array传递为: 我收到此错误: 警告:遇到两个具有相同密钥的孩子。密钥应该是唯一的,以便组件在更新期间保持其身份。 所以我的问题是:在这种情况下,提供密钥的最佳方法是什么?如果我将数字(如上例所示)用作键,那么避免此警告的最佳解决方案是什么? 谢谢!

  • 问题内容: 我正在为公司开发一个新的应用程序。该应用程序必须与iPhone之间交换数据。 公司服务器端使用.NET框架。 例如:特定CustomerNumber的类“ Customer”(名称,地址等)应首先从服务器下载到iphone,在本地存储,然后再上传回以应用更改(并使其他用户可以使用)。并发应该不是问题(至少在这个时候…) 无论如何,我必须同时开发服务器端(Web服务或其他)和iPhone

  • 问题内容: 我有一个使用XML响应请求的服务器,我想在javascript中解析它。我真的很喜欢ActionScript XML解析器,它对我来说很容易使用。我在徘徊是否有一种非常简单/直接的方法来解析我从服务器获取的XML? 理想的用法应该是: fetchXML新的XMLParser。parser.parse访问文档。 顺便说一句,我计划使用jQuery。 问题答案: 一个普通的with 会解决

  • 问题内容: 我正在创建一个Web API,需要一种很好的方法来非常快速地生成一些格式正确的xml。我找不到在python中执行此操作的任何好方法。 注意:一些库看起来很有前途,但要么缺少文档,要么仅输出到文件。 问题答案: 使用lxml: 输出: 有关更多信息,请参见教程。

  • 问题内容: 是什么使应用程序功能的模块/服务/位成为OSGi模块的特别好的候选者? 我对在我的应用程序中使用OSGi感兴趣。我们是一家Java商店,我们广泛使用Spring,因此我倾向于将Spring动态模块用于OSGi(tm)服务平台。我正在寻找一种将OSGi一点点集成到应用程序中作为试用的好方法。这里有人使用过此技术或类似的OSGi技术吗?有陷阱吗? @Nicolas-谢谢,我已经看过那个了。

  • 问题内容: 我有一个方法可以执行一些超时任务。我使用ExecutorServer.submit()获取Future对象,然后使用超时调用future.get()。这工作正常,但是我的问题是处理可能由我的任务引发的检查异常的最佳方法。以下代码可以正常工作,并保留检查的异常,但是如果方法签名中的检查的异常列表发生更改,则显得非常笨拙且容易中断。 对于如何解决这个问题,有任何的建议吗?我需要以Java