Estoy trabajando en un nuevo proyecto de aplicación para iOS, en el lado móvil. Están ocurriendo algunos cambios en la arquitectura y resulta que tendremos que confiar en una API privada personalizada que será utilizada por la aplicación que estamos creando y también por otros clientes, como un sitio web.
La API que se está diseñando sigue el estilo Rest de las operaciones URI y CRUD centradas en recursos asignadas a verbos HTTP. cosas como:
GET www.example.com/books
DELETE www.example.com/books/482094
POST www.example.com/users/6793
El problema es que este estilo a menudo lleva a la necesidad de que el cliente móvil haga muchas solicitudes para cargar una sola pantalla de aplicación o administrar una acción de IU de un solo usuario. Esto lleva a que la aplicación esté en modo de carga durante 8 segundos hasta que tenga todo lo necesario. Una aplicación lenta y que no responde.
Los clientes móviles tienen serias limitaciones cuando se trata de conectividad y, por lo tanto, idealmente, debemos seguir ese tipo de regla:
1 pantalla == 1 llamada API
1 guardar == 1 llamada API.
Hay muchas situaciones en las que esto lo lleva a un curso de colisión con los principios de diseño REST, por ejemplo:
- supongamos que su aplicación ha estado fuera de línea durante un día y necesita sincronizarse con cuatro tablas de las bases de datos de fondo y necesita una llamada como
www.example.com/sync_everything?since=2015-07-24
- Digamos que hay una pantalla en la que el usuario puede editar muchos de sus objetos, por ejemplo, marcando tareas en su lista de tareas pendientes. debería haber una manera de editar todos esos registros de tareas en una sola llamada API por lotes en lugar de una llamada API por edición.
- Digamos que hay una pantalla que mezcla información de las tablas db ORDER, SALESMEN y PRODUCT, debería obtener esos datos en una llamada en lugar de tres.
el riesgo es que podríamos terminar con la API más relajante que existe y también la aplicación móvil que no responde más inútil que existe.
La cuestión es que solo soy un nuevo contratista allí y lo que necesito es algo que me ayude a hacer esos puntos, algunos artículos de fuentes respetadas o algo así. Principales jugadores que se comprometen con el estilo REST para su cliente móvil (por ejemplo: mediante el uso de puntos finales de API agregados compuestos).
O cualquier solución para este problema general. ¡Gracias!