best app iphone android rest restful-authentication activeresource

iphone - best email app android 2018



Marcos RESTful para Android, iOS...? (3)

Mi empresa está revisando su API y quiere hacer todo correcto para este momento;) Esa es la configuración ...

  • Estamos entregando datos a clientes a través de internet.
  • Los clientes son teléfonos móviles como iPhone, Androids, J2ME, Blackberry ...
  • El servidor está codificado en Ruby on Rails

Queremos lograr a través de un marco ...

  • Utilice ActiveResource en los clientes.
  • El marco debe hacer la conexión (REST), analizar y (dinámicamente) proporcionar modelos
  • La licencia debe ser de código abierto.
  • La autorización debe ser incluida. Usamos OAuth y necesitamos entregar el token de acceso en cualquier solicitud. ¿Tal vez como parámetro o en el encabezado HTTP?
  • Soporte HTTPS / SSL
  • El soporte de paginación y relaciones (con carga diferida) sería genial. De otro modo, el marco debe ser capaz de ajustarse para estas cosas.

Ya hemos encontrado los siguientes marcos y les pedimos gentilmente que los evalúen. Tal vez uno de ustedes usó algunos de ellos o algo diferente ...

  • Android: RESTProvider de Novoda / Carl-Gustaf Harroch

    • Los proveedores ofrecen una abstracción de las fuentes de datos en Android y RESTProvider analiza automáticamente las respuestas RESTful API en un proveedor. RESTProvider es una implementación de todas las funcionalidades comúnmente reimplantadas cuando se trata de servicios web en Android. Los usuarios pueden interactuar sin problemas con cualquier API de servicios web que proporcione JSON o XML como respuesta. Para consultar un RESTProvider en una actividad, un usuario solo necesita especificar un punto final y luego consultar las funciones RESTful de una API. RESTProvider también maneja todas las consultas HTTP y el almacenamiento en caché.
    • No he encontrado mucha documentación aparte de eso
    • Proporciona almacenamiento en caché también
    • La versión + documentación está prevista para principios de 2011
  • iOS: http://iphoneonrails.com/

    • Lib para la comunicación entre iOS y Rails
    • RESTful y basado en "ActiveResource"
    • incluye XML / JSON Parser
    • licencia libre
    • ¿paginación ?, ¿Android ?, ¿carga lenta?
  • Android: marco de alimentación
    • com.google.android.feeds
    • Una colección de clases para ayudarlo a crear proveedores de contenido. El marco está especialmente diseñado para ayudar a conectar su aplicación a las API web.

Recomiendo echar un vistazo a RestKit para iOS

  • Capa de red enhebrada de alto rendimiento con una API simple para solicitudes / respuestas
  • Sistema de mapeo de objetos para mapear cargas útiles remotas en objetos locales de forma declarativa (incluidas las relaciones)
  • Integración con Core Data para proporcionar una memoria caché local rápida de datos remotos con capacidades de sincronización
  • Soporte para generar una base de datos semilla a partir de una serie de cargas JSON
  • Soporte específico para la integración con backends de Ruby on Rails (RKRailsRouter)
  • Apache con licencia
  • Se utiliza en producción en una serie de aplicaciones excelentes (es decir, Gate Guru )

Soy el autor del RESTProvider. Todavía es una etapa muy temprana, así que no recomendaría usarlo en producción. Lo he estado utilizando en varios proyectos que están en producción, pero he adaptado la mayoría del código a las necesidades específicas. Intentaré obtener una API pública estable antes de fin de año.

Con respecto a la reelaboración de la API, sugeriría lo siguiente:

  1. Use la compresión GZip
  2. Use ETags para el almacenamiento en caché
  3. Use estándares sin modificaciones (vi casos en los que la denominación cambió de oauth_token a my_token, lo que hace que la mayoría de las bibliotecas sean inútiles sin modificaciones) - OAuth / REST
  4. Use la marca de tiempo de creación / modificación e identificadores remotos para todos los objetos para habilitar el lado del cliente de caché (cláusulas de conflicto SQLite): {"myobject": {"createdAt": xxxx, "rid": "hashvalue"}} 4a. Utilice una buena forma de identificar el objeto devuelto para usuario / actividad / aplicación: opensocial utiliza "ID de aplicación" + "ID de usuario" + "ID de actividad"
  5. Prefiere JSON sobre XML
  6. Prefiere la simplicidad (la profundidad más baja posible)
  7. Devuelve el objeto completo con la relación uno a muchos dentro de ese objeto: {"parent": .... "has": {"objeto completo no solo el ID"}}
  8. No devuelva identificadores solamente ("categoría": [2,3,4] debería ser "categoría": [{"nombre": "prueba", "id": 2}, {"nombre": "producción", "id": 3}})
  9. Considere que cada llamada debe ser independiente la una de la otra (es decir, debería tener suficiente información para llamar a http://test.com/object.json para completar mis visitas)

Para la documentación: 1. proporcionar servidores de prueba 2. proporcionar cUrl para la prueba 3. proporcionar scripts de muestra en java / php / ruby, etc ...

Eso es todo lo que puedo pensar por ahora. Podría agregar algo sobre esto ya que vengo con más sugerencias.