我正在開發一個iPhone應用程序,並且想要創建某種RESTful API,以便應用程序的不同用戶可以共享信息/數據。創建各種社區。爲iPhone應用程序實現RESTful Web API的最便宜方式(平臺/語言)?
說我的應用程序是某種遊戲,我希望用戶能夠在全球排行榜上發佈他們的高分,並保持朋友列表並查看他們的分數。我的應用程序不是這樣的,但它顯示了我需要實現的一種集體信息訪問。
我可以實現這一點的方式是建立一個PHP和MySQL服務器,並有一個php腳本與數據庫進行交互,並通過獲取GET請求並返回,在數據庫和iPhone上的每個用戶之間調解請求一個JSON字符串。
這是一個很好的方法嗎?在我看來,使用PHP是一種實現這一點的緩慢方式,而不是說一種編譯語言。但我可能是非常錯誤的。我試圖保留我的託管賬單,因爲我打算免費發佈應用程序。我確實認識到,在CPU週期和內存使用方面表現更好的實現(例如編寫成C#語言編寫的內容)可能需要比LAMP服務器更昂貴的託管解決方案,因此實際上可能最終以$ /請求。
我也希望我的實現可以在很多人開始使用該應用的情況下進行擴展。使用量是否將性能/ $比率轉換爲不同的實施方式?即如果我每天有1k個請求,那麼使用PHP + MySQL可能會更便宜,但每天1M個請求可能會使用其他更便宜的東西?總之,如何實現一個(相當簡單的)遠程數據庫,使用HTTP(S)遠程訪問以最小化託管賬單?什麼樣的託管解決方案和什麼樣的平臺/語言?
UPDATE:per Karl的建議我試過了:Ruby(語言)+ Sinatra(框架)+ Heroku(應用託管)+ Amazon S3(靜態文件託管)。對於任何閱讀這篇文章的人來說,我可能會遇到同樣的困境,這種設置非常棒:輕鬆擴展(「無限」),價格合理,易於使用。謝謝Karl!
無法評論數據庫的細節,因爲我還沒有實現,儘管對於我的簡單查詢需求,CouchDB和MongoDB看起來像是不錯的選擇,它們與Heroku集成在一起。
您好codenoob。有關這方面的消息嗎?你完成了你的解決方案嗎?你有沒有找到時間嘗試應用程序引擎? – j7nn7k 2011-01-12 00:03:04
嘿Johe,我已經實現了它,現在正在iOS客戶端上工作。我在Heroku上運行帶有在Amazon S3上運行的靜態文件和在MongoHQ上運行的MongoDB數據庫的Sinatra的Ruby。這是實現使用西納特拉一個RESTful協議非常簡單,一切都是高度可擴展的,我只付我使用的資源。我還沒有嘗試過應用引擎,因爲這對我來說非常合適。 – lms 2011-01-12 09:41:51