php – 使用Zend框架的iPhone Web服务
虽然我有大约8年的.NET技术经验,但我对iPhone APP开发和
PHP开发都很陌生.我们已经开始开发一个iPhone应用程序,它将与各种第三方API进行对话,如facebook,twitter,四方,谷歌地理代码.
现在很多这些交互都必须从APP本身发生,例如用facebook进行初始认证,向facebook发布消息等.但是我们需要在服务器上进行一些交互,原因有多种,因为我是一个.NET开发人员可以想到的显而易见的方法是Web服务. 我们不想出于各种原因使用SOAP,我们尝试使用JSON开发自己的Web服务框架,但意识到将安全性等功能添加到我们正在创建的框架中会付出太多努力. 因此,我们决定使用像Zend这样的既定框架,我们可以在其中实现安全性和其他功能.我们还必须决定使用Zend Json-RPC和使用Zend REST.我的问题是多方面的,请理解我是PHP开发的新手,所以我的一些问题可能非常基础. >我想知道任何一个开发iPhone应用程序与许多第三方API进行交互的人,您在服务器中进行了多少交互,除了使用Web服务之外,还有其他任何有效的方式与服务器进行通信吗? 我是一名.NET开发人员,正在转向APP和PHP开发,因此希望能够从我们计划从这些领域的一些人那里获得的整个方法获得一些指导. 解决方法
让我们看看如何最好地回答这个问题.
回答1 还没有完成iPhone应用程序.在工作中,我构建/维护一个执行大量服务调用的Adobe AIR客户端应用程序.我的经验法则是在客户端做任何有意义的事情(利用他们的资源)而不是一贯地唠叨服务器.通常,我们的应用程序会从服务器中预先加载所需的所有信息,并且有足够的数据可以完成.每隔一段时间,它需要将该信息发送回服务器以存储在安全的位置,但大多数工作原理的逻辑都在客户端应用程序中. 由于我们使用的是Adobe技术,因此我们使用AMF作为传输协议在客户端和服务器之间来回发送数据. 回答2 安全将取决于您处理.我在第4步中详细讨论了这一点.对于REST,您只是传递一个get / post / delete / etc,其中包含未隐藏的值. XMLRPC你只是传递一个任何人都可以看到的xml.现在,REST是对它自己的讨论.由于没有真正的标准,当人们谈论它时,很难定义REST是什么.如果你想使用REST,我认为Zend_Rest不会真正处理它.有一些专注于REST的other框架可能对您有所帮助.此外,如果安全性很重要,请使用HTTPS而不是HTTP. 如果你选择做REST(the right way),我认为你需要很长时间才能实现. 回答3 这都是关于你如何构建它的.我使用Zend来处理我上面描述的服务.我已经用你可以使用JSONRPC或AMF的所有API构建它(如果我想的话,我可以轻松地添加XMLRPC或其他API)并使用相同的资源.我将AMF用于AIR应用程序,并将JSONRPC用于我的PHP站点/工具.我更喜欢JSON,因为我觉得它比xml重量更轻,对我来说它更容易使用. 接下来,我安排了cron作业,每晚我将数以千计的查询数据从db缓存到内存中.我知道的数据在第二天不会改变,并且会经常使用.任何未被此进程缓存的内容都将根据具有特定到期时间的客户端的请求单独缓存.这一切意味着什么,我的所有服务电话都非常快速有效.很多时候我甚至不必点击数据库,所以在服务器端处理请求的时间是一瞬间. 此外,如果您使用Zend,请不要将框架用于API,只需将服务器模块用作独立部分.不要使用整个MVC堆栈,只需为要使用的每个协议创建一个独立文件.我有一个处理JSONRPC请求的json.php和一个处理AMF请求的amf.php文件.里面的两个文件都非常轻量级,它们只需要启动Zend_Json_Server或Zend_Amf_Server,将类路径分配给我的类所在并处理请求. 回答4 你使用哪种协议,你必须像对待任何东西一样建立安全性.您也可以使用Zend身份验证模块和acl.如果您来回传递敏感数据,无论是json,xml,rest,您都需要加密该数据,否则某些人会看到它. AMF是一种二进制格式,这使得它更难做,但除此之外.您选择哪种协议,您仍然需要构建一些身份验证机制,以确保其他人在没有访问权限的情况下不使用它. 如果您正在寻找有关使用Zend构建Web服务的不同方法的更多信息,我认为本书Zend Framework Web Servicces是一个很好的资源.我希望这有助于您入门. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |