¿Una aplicación móvil necesita más acceso que la API pública de un sitio?

7

Tengo un sitio con una API pública, y se ha contratado a algunos desarrolladores de aplicaciones móviles para que produzcan una aplicación de iPhone para el sitio. Insisten en que necesitan ver el esquema de la base de datos, pero, según tengo entendido, solo deberían necesitar acceso a la API pública documentada.

Estoy en lo cierto? ¿Hay algo que me haya perdido? Les he dicho que si falta alguna característica o datos que necesiten, puedo extender la API para que puedan acceder a ella. Pensé que una API de servicio web mantenía los mismos principios que las API de objetos OOP, en el sentido de que los detalles de la implementación deberían estar ocultos todo lo posible.

No soy un desarrollador de aplicaciones móviles, así que si hay algo que no veo, házmelo saber. Cualquier información o ayuda será muy apreciada.

Actualización: el equipo móvil forma parte de un servicio de asesoría financiado por el gobierno para nuevas empresas. Desde entonces, descubrí que el gerente del proyecto, que fue el que presionó tanto para ver la base de datos y otros elementos internos, también trabaja para una agencia de desarrollo web. No puedo decir con seguridad cuáles fueron sus razones para querer ver estas cosas, pero considerando que una vez no dio una razón técnica válida , me parece más preocupante que en ese momento.

    
pregunta Iain 30.11.2012 - 19:58

3 respuestas

9

Es posible que quieran ver el esquema para poder replicarlo en el dispositivo móvil. Eso les ahorrará algo de trabajo. Además, ver el esquema podría impedirles hacer suposiciones erróneas acerca de cómo deberían estructurarse sus datos basándose en información potencialmente incompleta sobre la base de datos.

Sin embargo, deberían crear su propio esquema diseñado en torno a la estructura de los datos de la API diseñados para funcionar dentro de las limitaciones del dispositivo. Normalmente, un servidor SQL tiene una mayor capacidad de procesamiento y espacio de almacenamiento que un teléfono, por lo tanto, ¿por qué replicar la estructura del servidor cuando el dispositivo cliente simplemente no tiene la capacidad para enfrentarlo? Si están trabajando en iOS y usando CoreData, tratar de pensar de forma similar a SQL es potencialmente contraproducente, ya que tratarán con un gráfico de objetos jerárquicos, no con una colección de tablas.

Argumentaría que los desarrolladores no deberían tener más conocimiento del backend del que pueden obtener al consultar la API y consultar su documentación. Estoy completamente de acuerdo con usted: la API oculta los detalles de implementación que los desarrolladores de dispositivos móviles no deberían tener que preocuparse. Como beneficio adicional, obligarlos a trabajar con la API destacará rápidamente cualquier problema de diseño y errores.

(Soy un antiguo desarrollador de backend / web frontend que cambió al trabajo móvil)

    
respondido por el Ant 30.11.2012 - 20:21
5
  

Estoy en lo cierto? ¿Hay algo que me haya perdido?

Tienes razón. Puede o no haber algo que se haya perdido en la API, pero no hay nada peculiar en escribir una aplicación móvil que requiera que los desarrolladores sepan cómo se ve el esquema de su base de datos . Por el contrario, cuanto más dependan de su API pública y cuanto menos dependan de los detalles de implementación privada como el esquema de su base de datos, mejor. Idealmente, no deberían necesitar saber nada sobre cómo funciona su servicio. El objetivo de tener una Interfaz de programa de aplicación es evitar que las aplicaciones dependan de información privada.

Dicho todo esto, es posible que su API no proporcione todo lo necesario para implementar las funciones que los usuarios de aplicaciones móviles tienen en mente. A menos que sean realmente irrazonables, deberían poder apreciar el beneficio (tanto para ellos como para usted) de escribir en una interfaz pública, por lo que deberían estar dispuestos a: a) leer y trabajar con su API, yb) trabajar con usted para arreglar cualquier agujero en la API.

    
respondido por el Caleb 30.11.2012 - 21:25
4

Suena como si solo quisieran entender el modelo de dominio.

Tal vez si les proporciona un diagrama de relación de entidad en UML con todas las clases de dominio y sus relaciones, entonces tendrán una comprensión profunda de todo lo que necesitan saber. De hecho, eso es todo lo que necesitan saber y también se puede argumentar sobre la protección de secretos comerciales confidenciales.

He visto que se solicitan tales cosas a través de departamentos internos donde los clientes de una API de servicio web en otro departamento exigieron toda la documentación de su proyecto antes de comenzar, y su razonamiento fue que este grupo particular de desarrolladores a cargo de estos servicios web tenía una reputación notoria para el desarrollo de software horrible no probado. Cuando otros equipos encontraron problemas con sus servicios web mal documentados, necesitaban entender lo más posible sobre su sistema para que el grupo de clientes pudiera autodiagnóstico y señalar al grupo de servicios web lo que están haciendo mal.

Es probable que este equipo móvil no esté satisfecho con burlarse de sus servicios web, ya que pueden haber sido quemados en el pasado por grupos de desarrolladores de servicios web anteriores que hicieron un mal trabajo. Cuando sus pruebas de integración comiencen a fallar en su entorno, no podrán decirles a sus superiores que han completado sus tareas, por lo que probablemente deseen un entorno de servicio web con todas las funciones que controlan para que puedan ejecutar sus pruebas de integración con éxito. sin necesidad de tu participación.

    
respondido por el maple_shaft 30.11.2012 - 22:01

Lea otras preguntas en las etiquetas