适用于iPhone的PHP RESTful Web服务


PHP RESTful Web Service for an iPhone

我正在开发一个iPhone应用程序,还需要实现一个Web服务。首先,我不是一名开发人员,也从未在PHP、Objective-C、xCode方面做出过重大贡献。我的PHP知识也不好。但让我们从我的环境开始。

iPhone应用程序(xCode 4.2,iOS5),PHP Web服务,MySQL数据库

我在研究WEB,大多数人更倾向于REST而不是SOAP。我想我也看到了REST的优点(使用简单的HTTP动词(get、post、delete等),但这不是重点。。。

我想我理解REST体系结构的主要目标,并尝试用URI和动词映射来实现一个小概念。这里只是一个简单的映射示例:

/location/{location_id}/product
/location/{location_id}/product/{product_id}

两者都是GET操作,应该为我获取一个位置的单个产品或所有产品。

使用这些函数,一个简单的PHPRESTWeb服务器会是什么样子?

另一部分应该从iPhone实现用户身份验证。不知怎么的,我需要存储用户会话,现在我不知道如何做到这一点。目标是,如果只有一个用户登录,他可以查看产品。

现在我也研究了网络,但找不到一个简单的循序渐进的教程。你知道有什么好的教程可以帮助我实现目标吗?:)

很多人更喜欢使用像ZEND这样的PHP框架。这看起来很有趣,但它似乎是一个包含许多模块的大包。有人知道让我的Web服务工作到底需要哪些模块吗?

这是一个很好的教程,它使用了codeigniter框架,使学习曲线更陡峭,但从长远来看,它会更强大。

http://net.tutsplus.com/tutorials/php/working-with-restful-services-in-codeigniter-2/

如果你想用自定义的方式构建它,如果你想以JSON格式返回信息,特别是对于php5,这实际上很容易做到,因为目前主机普遍支持php5。

基本上步骤如下:

  • 通过url传入产品id并使用GET检索,即service.php?product_id=10
  • 查询数据库并返回传入的产品id的数据
  • 将返回的数据存储在数组中
  • 将标头内容类型设置为application/json
  • json_encode结果(json_encod)

这样,当您在浏览器中调用该url时,您将以键:值对的方式获得一个漂亮的JSON格式的数组结果。从iOS5开始,json解析器随框架一起提供(对于早期版本,SBJson是一个很好的框架(SBJson))