【问题标题】:Writing SOAP vs RESTFUL web service to be used in iPhone, Android and Windows Phone apps [closed]编写用于 iPhone、Android 和 Windows Phone 应用程序的 SOAP 与 RESTFUL Web 服务 [关闭]
【发布时间】:2013-01-02 15:41:53
【问题描述】:

我有一个在 PHP 上运行的网站,我需要在 Android、iOS 和 Windows Phone 平台上开发相同的应用程序。我想我需要创建网络服务来从网站获取数据,但我对它不是很熟悉。

从可在所有平台上使用的兼容性和易用性的角度来看,以下哪种方法最好:

1) 基于 Rest 的 Web 服务 2) 基于 SOAP 的网络服务 3)任何其他方法

还有什么是可以在所有平台上轻松使用并具有内置 SDK 支持来解析它们的最佳响应格式:XML/JSON/SOAP

如果有人遇到这种情况,请提出建议。感谢任何回复,因为我必须尽快开始实施。

谢谢, MG

【问题讨论】:

  • 我会选择 REST 而不是 SOAP,因为 REST 基于 HTTP 协议,因此所有平台都应该原生支持。此外,设置和调试 SOAP 可能会很痛苦。

标签: php android ios windows-phone-7


【解决方案1】:

目前涉及多个平台的工作和经验以及为了便于开发,只是简单地使用通过 OAUTH 签名的 HTTP 上的 JSON。

HTTP,因为它在每个支持 Web 浏览器的平台上都可用(以及那些不通过使用 libCURL 的平台),并且还允许您在必要时使用 SSL,并带有一个众所周知的服务基础架构以实现可伸缩性。

JSON 因为它遵循可编程对象表示法,允许您在 HTTP 请求正文和响应正文中传输可解码结构。那里有很多库,尤其是对于您正在体验的平台。这使得从数据流和语言(PHP 服务器/C++ 客户端)之间推送和拉取对象变得快速。

OAUTH,因为它是一种使用 HTTP 的简单但非常出色的身份验证协议,可以很好地识别您的应用程序和您的用户,而无需通过不安全的链接以明文形式传输密码(令牌)。

很明显,在安全方面要始终记住一件事,当您将应用程序提供给客户端设备时,您不能保证使用您的 Web 服务的客户端就是您构建的客户端。如果你写了一个成功的产品,你会发现你的客户端被黑了,它的通信中断了,其他伪客户端使用的网络服务——当然这一切都取决于产品的功能和能力。不幸的是,移动应用程序世界充斥着越狱设备上的被黑客户端。但是,如果您有机会也可以利用这些客户,那么服务会更好! (例如,一个免费游戏,付费购买,在您控制的服务器上存储和验证)。同样对于本说明,您不能假设您的应用程序 OAUTH 令牌可以保证是安全的,OAUTH 并不是要保证用户的身份(因为他们的令牌可能被盗),但是它可以很好地减少伪造的能力用户身份验证,而无需先获得对该用户帐户的访问权限。

祝你好运!

【讨论】:

  • 感谢安德鲁的快速响应。您的意思是使用 JSON 响应格式的基于 REST 的 Web 服务吗?如果我大部分时间都不需要对用户进行身份验证怎么办。
  • 嗨,是的,使用 JSON 请求和响应格式的基于 REST 的通信(您可能希望您的客户端在请求中上传结构,因为它可以更容易 - 为此您将使用 POST 和 setRawRequestBody 语言相关)。
  • 关于身份验证,如果您不对您的 Web 服务设置任何形式的安全性,那么其他人和客户使用它就会变得非常容易。然而,这可能是你想要的。 OAUTH 可以以 2 种方式使用,仅消费者签名有利于简单的安全性证明对应用程序数据的访问,而用户+消费者签名用于基于用户的身份验证,提供对某人帐户的访问。由于运行 Web 服务通常需要花钱,我建议对您的服务进行简单的身份验证,以帮助您控制成本。但是,这完全是您的选择。
猜你喜欢
  • 2013-07-14
  • 1970-01-01
  • 1970-01-01
  • 2010-12-23
  • 2018-01-21
  • 1970-01-01
  • 1970-01-01
  • 2012-07-19
  • 1970-01-01
相关资源
最近更新 更多