我应该在这种情况下使用哪种技术。 REST,SOAP还是其他任何东西?

时间:2013-12-30 02:19:26

标签: web-services rest soap

我目前负责设计一项服务,以检查我公司软件的版权。通常,此服务将在用户安装或使用应用程序时检查序列号。起初,我想过使用REST,但根据我的知识,REST的Web方法的目的如下:

GET: retrieve data
POST: create new data
PUT: edit existed data
DELETE: delete data

因此在我的情况下,为了不违反REST的规则,我必须使用GET将序列号发送到服务器。但这会导致我想避免的潜在安全风险。

然后我想到了SOAP。但是使用XML格式的SOAP比使用REST更慢且可扩展性更低(如果我错了,请纠正我。)

所以我需要一个建议,我应该使用哪种服务技术来实现轻量级,可扩展但仍能保持性能。

1 个答案:

答案 0 :(得分:1)

您对REST方法的理解接近正确,但并不完全正确。具体来说,您对PUT的描述并不准确:PUT用于创建新资源或编辑现有资源。 POST和PUT之间的区别在于创建与更新之间的差异,更多的是关于资源的URL是否事先由客户端知道。它肯定是用于创建资源的POST的常见模式,因为新资源的URL通常包含服务器生成的ID,但是使用PUT创建资源对于许多用例来说当然仍然有效。

所有这一切,对您的REST理解的这种更正并不能解决您试图解决的问题。您可以使用REST方法或使用SOAP设计服务。两者都不会自动处理您的安全问题,但您的安全问题可以通过任何一种方法解决。

假设您希望坚持使用REST方法(在大多数情况下它更简单,我会这么做),那么您真正的问题应该是如何设计REST接口以解决安全问题。加密可能是一个很好的解决方案,但是如何加密的具体细节将在很大程度上取决于如何部署服务以及如何安全地共享加密密钥。关键在于,无论您使用哪种设计方法,都需要进行适当的安全考虑。