我正在开发一款iPhone应用程序,想要创建某种RESTful API,以便该应用程序的不同用户可以共享信息/数据,从而创建社区。
比方说我的应用程序是某种游戏,我希望用户能够将他们的最高分发布到全球排行榜上,并维护好友列表并查看他们的分数。我的应用程序与此无关,但它展示了我需要实现的集体信息访问类型。
我可以这样实现:设置一个PHP和MySQL服务器,并编写一个php脚本,与数据库交互、处理来自iPhone每个用户的请求,通过接收GET请求并返回JSON字符串来完成。
这种方法可行吗?在我看来,使用PHP实现这种功能可能比使用编译语言慢。但我可能非常错误。我试图控制托管账单,因为我计划免费发布该应用程序。我认识到,在CPU周期和RAM使用方面表现更佳的实现(例如使用C#编写的编译型代码)可能需要比LAMP服务器更昂贵的托管解决方案,因此在每次请求的成本方面可能实际上会更高。
我还希望我的实现在很少情况下可以进行扩展,以防大量人开始使用该应用程序。使用量是否会将性能/成本比率转向不同的实现方式?也就是说,如果我每天有1k个请求,使用PHP+MySQL可能更便宜,但如果每天有1M个请求,使用其他东西可能会更便宜?
总而言之,您如何实现一个(相当简单的)远程数据库,可以使用HTTP(S)进行远程访问,以最小化托管账单?使用什么样的托管解决方案和什么样的平台/语言呢?
更新:根据Karl的建议,我尝试了:Ruby(编程语言)+ Sinatra(框架)+ Heroku(应用程序托管)+ Amazon S3(静态文件托管)。对于任何阅读此文并遇到与我类似问题的人来说,这种设置非常棒:易于扩展(可扩展至“无限”),价格合理,易于使用。谢谢Karl!
因为我还没有实现具体的数据库,所以无法对数据库进行评论,尽管对于我的简单查询要求,CouchDB和MongoDB似乎是不错的选择,并且它们与Heroku集成。