在这种情况下我应该使用哪种技术.REST、SOAP或任何其他



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

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

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

然后我想到了SOAP。但是SOAP使用XML格式冗长,因此与使用REST相比,速度较慢,可扩展性较差(如果我错了,请纠正我。)

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

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

尽管如此,这种对REST理解的纠正并不能解决您试图解决的问题。您可以使用REST方法或SOAP来设计服务。两者都不会自动处理您的安全问题,但您的安全担忧可以通过任何一种方法解决。

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

最新更新