Ich entwickle eine iPhone App und möchte eine Art RESTful API erstellen, damit verschiedene Benutzer der App Informationen/Daten teilen können. Um eine Art von Gemeinschaft zu schaffen.Günstigster Weg (Plattform/Sprache) um eine RESTful Web API für eine iPhone App zu implementieren?
Angenommen, meine App ist eine Art von Spiel, und ich möchte, dass der Nutzer seinen Highscore auf einer globalen Rangliste posten kann, sowie eine Liste von Freunden pflegen und ihre Punktzahlen sehen kann. Meine App ist nicht so, aber sie zeigt die Art des kollektiven Informationszugriffs, den ich implementieren muss.
Die Art, wie ich dies implementieren könnte, ist die Einrichtung eines PHP und MySQL-Servers und ein PHP-Skript, das mit der Datenbank interagiert und vermittelt die Anfragen zwischen der DB und jedem Benutzer auf dem iPhone, indem eine GET-Anfrage und die Rückkehr eine JSON-Zeichenfolge
Ist das ein guter Weg? Scheint mir, als ob die Verwendung von PHP eine langsame Art ist, dies zu implementieren, im Gegensatz zu einer kompilierten Sprache. Ich könnte jedoch sehr falsch liegen. Ich versuche, meine Hosting-Rechnungen niedrig zu halten, weil ich vorhabe, die App kostenlos zu veröffentlichen. Ich erkenne, dass eine Implementierung, die in Bezug auf CPU-Zyklen und RAM-Auslastung besser funktioniert (z. B. etwas kompiliert geschrieben in C#?) Teurere Hosting-Lösungen erfordern als sagen, ein LAMP-Server könnte tatsächlich am Ende teurer in Bezug auf $ /anfordern.
Ich möchte auch meine Implementierung skalierbar in dem seltenen Fall, dass viele Leute beginnen, die App zu verwenden. Verändert das Nutzungsvolumen das Verhältnis von Leistung und Preis zu einer anderen Implementierung? I.e. wenn ich 1k Anfrage/Tag habe, könnte es billiger sein, PHP + MySQL zu verwenden, aber 1M Anfragen/Tag könnten etwas anderes billiger machen?
Zusammenfassend, wie würden Sie eine (ziemlich einfache) entfernte Datenbank implementieren, auf die remote mit HTTP (S) zugegriffen wird, um Hosting-Rechnungen zu minimieren? Welche Art von Hosting-Lösung und welche Art von Plattform/Sprache?
UPDATE: pro Karls Vorschlag habe ich versucht: Ruby (Sprache) + Sinatra (Framework) + Heroku (App-Hosting) + Amazon S3 (statische Datei-Hosting). Für alle, die das lesen, die das gleiche Dilemma haben wie ich, ist dieses Setup erstaunlich: mühelos skalierbar (bis "unendlich"), erschwinglich, einfach zu benutzen. Danke Karl!
Ich kann die DB-Spezifikationen noch nicht kommentieren, weil ich das noch nicht implementiert habe, obwohl CouchDB und MongoDB für meine einfachen Abfrageanforderungen eine gute Wahl darstellen und in Heroku integriert sind.
Hallo Codenoob. Gibt es Neuigkeiten zu diesem Thema? Hast du deine Lösung abgeschlossen? Hast du die Zeit probiert App Engine? – j7nn7k
Hey Johe, ich habe es implementiert und arbeite jetzt am iOS Client. Ich habe Ruby mit Sinatra auf Heroku mit statischen Dateien auf Amazon S3 und einer MongoDB-Datenbank bei MongoHQ verwendet. Es war sehr einfach, ein REST-konformes Protokoll mit Sinatra zu implementieren, und alles ist extrem skalierbar, und ich bezahle nur für die Ressourcen, die ich verwende. Ich habe die App-Engine nicht ausprobiert, weil das für mich perfekt funktioniert hat. – lms