2011-02-26 14 views
7

He estado desarrollando aplicaciones iOS por un tiempo, pero todas tratan con la información que está en el dispositivo.Cómo crear mi propia API web/Servicio web

Quiero expandir mi conocimiento y el atractivo de mis aplicaciones.

Lo que necesito es un buen tutorial sobre cómo crear mi propia base de datos SQL en línea y una API para acceder a toda la información que contiene.

He usado varias API (Twitter, Facebook, Google, etc.) así que en el lado de iOS estoy listo.

Me encantaría implementarlo utilizando Google App Engine, pero si conoces nuevas formas de implementar esto, estoy más que feliz de escucharlos; Escuché que Java, .net y Ruby son las mejores opciones.

He encontrado muchos tutoriales en línea, pero sé que los usuarios de Stack Overflow tienen conocimiento de grandes recursos que pueden ayudarme a mí, y a otros desarrolladores, a ponerme en funcionamiento más rápido, más fácil y aprender más.

Creo que las respuestas a esta pregunta pueden ser un gran recurso para todos los desarrolladores interesados ​​en Wb API.

Muchas gracias por su ayuda.

Respuesta

7

En mi humilde opinión, App Engine es una gran elección, ya que prácticamente no hay necesidad de configurarlo/administrarlo. También viene empaquetado con potentes servicios como almacén de datos, taskqueue, autenticación de usuario, mensajería, etc. La mayor ventaja para mí es el Datastore, que no tiene esquemas, por lo que no tienes que actualizar/administrar constantemente el esquema a medida que avanza tu aplicación .

El inconveniente es que tiene un modelo de programación algo diferente, por lo que los desarrolladores de servlet + SQL de fondo tienden a tener problemas con él al principio. Como eres nuevo en esto, no debería ser un problema.

Todos mis consejos a continuación son Java, ya que esto es lo que sé. Con suerte, otros publicarán respuestas que presenten otras plataformas/idiomas.

para conseguir este funcionamiento se necesitará:

  1. instalación de un servicio web. Vaya con REST ya que es el más común y fácil de configurar/usar. Intenté todos los principales frameworks de Java REST y terminé con Resteasy, porque simplemente funciona y tengo en mi humilde opinión la mejor documentación.

  2. Comprenda cómo funciona GAE Datastore. Hay algunas API para usar el almacén de datos:

    a. El nivel bajo es engorroso ya que necesita usar sus clases de modelo (Entity), por lo que hará una gran cantidad de copias entre sus objetos y los objetos Entity devueltos por esta API.

    b. JDO/JPA son los estándares java ORM, pero se crearon para bases de datos SQL y están realmente calzados en Datastore. Aconsejaría no usarlos, porque son solo una capa adicional de bajo nivel y también intentan engañar a los desarrolladores para que Datastore sea una base de datos SQL.

    c. Objectify. Esta es una biblioteca OSS de un tercero, pero el autor es AFAIK con el respaldo de Google. Es una capa en la parte superior de bajo nivel, pero de una manera muy natural, para no ocultar las características del Almacén de datos. Recomiendo usarlo.

  3. Autenticación. Querrá la autenticación.GAE admite OpenID/OAuth de fábrica (solo marque la opción federated login en el panel de comandos). Ahora la parte difícil es hacer que esto funcione con iPhone y otros dispositivos:

    a. Requiere que el usuario ingrese las credenciales de Google en su aplicación de iPhone. Algunos usuarios son reacios a hacer esto (yo, por ejemplo). En este caso, use iPhone OAuth client.

    b. Abrir una página Web OpenID en el navegador integrado: Authenticating with Stack Overflow programmatically

0

que he hecho varias aplicaciones back-ends en "bruto" PHP/MySQL (sin marcos). La ventaja de este enfoque es que es muy, muy fácil de hacer, y cada una de las empresas de hosting existentes admite PHP y MySQL. Si su back-end es exclusivamente para un iphone, incluso puede devolver todos los datos en formato xml que no requiere análisis y puede convertirse instantáneamente en diccionarios/matrices en la aplicación iphone.

Otra ventaja es que puede configurar un servidor de prueba en su sistema de desarrollo o red doméstica y puede probar el back-end localmente a través del simulador de iphone e incluso su dispositivo iphone siempre que use direcciones IP en lugar de nombres (y si es una buena persona de administrador de sistemas/red, probablemente también podría configurarlo para usar sus nombres de red).

La desventaja de raw PHP/MySQL es que no se obtienen las interfaces de administrador de forma gratuita para gestionar/editar entidades de datos como con la mayoría de los frameworks como django. Otra desventaja es escalar a un gran volumen de tráfico, pero si está utilizando un servicio de alojamiento razonable, eso puede no ser un problema.

Hay toneladas de libros y materiales en línea para hacer sitios web de php/mysql.

+0

Todos los "marcos" (incluido App Engine) le dan la capacidad de ejecutar servidores de desarrollo local. –

Cuestiones relacionadas