Estoy desarrollando una aplicación para iPhone y me gustaría crear algún tipo de API RESTful para que los diferentes usuarios de la aplicación puedan compartir información/datos. Para crear una comunidad de tipo.¿La forma más económica (plataforma/idioma) para implementar una API web RESTful para una aplicación de iPhone?
Decir que mi aplicación es una especie de juego, y quiero que el usuario pueda publicar su puntuación más alta en una clasificación mundial, así como mantener una lista de amigos y ver sus puntuaciones. Mi aplicación no es como esta, pero muestra el tipo de acceso a la información colectiva que necesito implementar.
La forma en que podría implementar esto es configurar un servidor PHP y MySQL y tener un script php que interactúe con la base de datos y medie las solicitudes entre el DB y cada usuario en el iPhone, tomando una solicitud GET y regresando una cadena JSON.
¿Es esta una buena manera de hacerlo? Me parece que usar PHP es una forma lenta de implementar esto en lugar de decir un lenguaje compilado. Sin embargo, podría estar muy equivocado. Estoy tratando de mantener mis cuentas de alojamiento ocultas porque planeo lanzar la aplicación gratis. Reconozco que una implementación que rinde mejor en términos de ciclos de CPU y uso de RAM (por ejemplo, algo compilado en C#?) Podría requerir soluciones de alojamiento más costosas que un servidor LAMP, por lo que podría terminar siendo más caro en términos de $ /solicitud.
También quiero que mi implementación sea escalable en el raro caso de que muchas personas comiencen a usar la aplicación. ¿El volumen de uso cambia la relación rendimiento/$ hacia una implementación diferente? Es decir. si tengo 1k de solicitud/día, podría ser más barato usar PHP + MySQL, pero las solicitudes de 1M/día podrían hacer que usar otra cosa sea más económico.
En resumen, ¿cómo implementaría una base de datos remota (bastante simple) a la que se accedería de forma remota mediante HTTP (S) para minimizar las facturas de alojamiento? ¿Qué tipo de solución de alojamiento y qué tipo de plataforma/idioma?
ACTUALIZACIÓN: por sugerencia de Karl Traté: Rubí (lenguaje) + Sinatra (marco) + Heroku (aplicación de hosting) + Amazon S3 (archivo estático hosting). Para cualquiera que lea esto y pueda tener el mismo dilema que yo tuve, esta configuración es increíble: escalable sin esfuerzo (hasta "infinito"), asequible y fácil de usar. Gracias Karl!
Aún no puedo comentar las particularidades de DB porque aún no lo he implementado, aunque para mis requisitos simples de consulta, CouchDB y MongoDB parecen buenas opciones y están integradas con Heroku.
Hola codenoob. ¿Alguna noticia sobre esto? ¿Terminaste tu solución? ¿Has encontrado el motor de la aplicación try de tiempo? – j7nn7k
Hola Johe, lo he implementado y ahora estoy trabajando en el cliente de iOS. Usé Ruby con Sinatra corriendo en Heroku con archivos estáticos en Amazon S3 y una base de datos MongoDB corriendo en MongoHQ. Fue muy simple implementar un protocolo RESTful usando Sinatra y todo es extremadamente escalable, y solo pago por los recursos que uso. No he probado el motor de la aplicación porque funcionó perfectamente para mí. – lms