如何编写REST API?

Eri*_*k B 82 php mysql iphone rest

我正在编写一个iPhone应用程序作为业余爱好项目,它需要一个Web服务来为它提供数据.它与我在工作中所做的并没有太大的不同,但在工作中我只写视图和控制器.其他人负责编写模型,通常客户端提供Web服务.

我以前做过一些网络编程,当每个人都使用MySQL和PHP时,所以我的技能有点过时,但我相信我能够使用我已经知道的技术.但是,我不想浪费时间使用过时的工具.我已经发现最先进的技术是编写REST API.我当时认为应该有一些非常好的框架,只要你定义了一个模型,它就会给你一个带有CRUD功能的REST API.

我想我的问题是:什么是启动和运行REST API的最快方法?我真的只想专注于编写iPhone应用程序,而不是花太多时间在这个API上.如果我能获得网络管理和修订历史,那将是很棒的.我还应该补充一点,API不应该是公开的,因此对身份验证的支持也会很好.

只是为了清楚.我不介意PHP框架.事实上它可能会更好,因为我知道我目前的托管支持它.

nic*_*fox 42

编辑:

下面显然已经好了3年的链接已经不再有效了所以我去找了几个新的教程,我认为这些教程会坚持一段时间.这些都在Ray Wenderlich网站上,这是一个备受推崇的ios开发教程网站.第一篇文章实际上引用了下面的断开链接,但它本身是完整的:

如何为iOS应用程序编写简单的PHP/MySQL Web服务

而第二个有点扭曲.它在后端和AFNetworking上使用了parse.com.两者都非常优秀.

如何使用Web服务同步核心数据 - 第1部分


我通过查找后机的方式修复了下面的断开链接.人们似乎喜欢链接所以我会保留它们.上面的链接应该提供更多的思考.


我用我的iPhone应用程序完全一样.我发现这篇关于在PHP中构建RESTful API的文章:

https://web.archive.org/web/20130910164802/http://www.gen-x-design.com/archives/create-a-rest-api-with-php/

这里还有一篇后续文章:

https://web.archive.org/web/20130323001500/http://www.gen-x-design.com/archives/making-restful-requests-in-php/

链接到文章底部的源代码.

  • 这些链接似乎现在已超时.如果发生在其他任何人身上,我不确定.:/ (2认同)

Phi*_*ker 8

我使用Zend_Rest_Controller 在ZEND Framework中编写了一个REST API ,在我使用ASIHTTPRequest的iPhone上.我对两者的经验都很好.一开始我在设置ZEND并将其连接到mySQL时遇到了一些麻烦,但是一旦我弄清楚如何做到这一点,我就能够非常快速地编写API.如果您有任何其他问题,我可以与您分享更多信息.

编辑:似乎没有官方文档Zend_Rest_Controller.此链接描述了如何使用它来创建API.您只需禁用init()子类中的呈现并为每个REST调用实现方法.

  • 我猜他没有成功......:D (4认同)
  • 看看这里有一个关于如何使用zend_rest_controller的良好开端:http://techchorus.net/create-restful-applications-using-zend-framework.创建一个rest api很容易用这个类 (2认同)

Eri*_*k B 8

只是让你知道:

我最终使用Ruby on Rails.

编辑:由于这个答案因为没有提供选择Ruby on Rails背后的原因以及没有关于如何用它编写REST API的说明而被忽略了,我想我会给你我的动力和一些简单的指示.

我开始阅读一本关于Ruby on Rails的书,并意识到我需要做的就是使用脚手架,我免费获得了一个JSON REST API.

这是一本很好的入门指南:http://guides.rubyonrails.org/getting_started.html

当您的Ruby on Rails环境启动并运行时,创建REST API并不比运行更困难:

$ rails generate scaffold Post name:string title:string content:text
Run Code Online (Sandbox Code Playgroud)

(从上面的链接示例.)我还发现Rails非常容易并且可以自由地部署到heroku,这意味着我不需要为我的基本的低流量REST API付费.我很高兴使用Ruby on Rails还有很多其他原因,但这超出了这个问题的背景.

  • @thenetimp回答你自己的问题没什么不好的.事实上它是鼓励的,只要它是一个正确的答案,而其他任何人都没有给出.你没有获得任何代表接受你自己的答案,所以我真的没有看到你可能有什么反对它. (29认同)
  • 给自己一个答案然后给它一个复选标记坏形式男人非常糟糕的形式. (10认同)
  • @Nate我会向想要编写REST API的人推荐Ruby on Rails,所以我不会删除我的答案.但是,我阅读了您的反馈并更新了我的答案.我希望它让你高兴. (4认同)
  • 如果你给出了选择它的理由会更好 (3认同)
  • @DennisKrøger如果问题是"如何编写REST api?" 然后"我使用过RoR.这是一个开始使用脚手架的指南",这完全是一个正确的答案. (2认同)

jim*_*rin 8

我按照一个非常简单的教程用PHP创建RESTful API:

Corey Maynard - 使用PHP创建RESTful API

主要概念包括:

  • 一个抽象类,用于处理URI的解析并返回响应,以及
  • 一个具体的类,它只包含API的端点.