James y Ashish tienen razón en que “no debería” tener que desarrollar una API separada para aplicaciones móviles y web.
Aunque si está creando aplicaciones empresariales complejas, esto es lo que debe hacer idealmente.
- Cree una capa de servicio comercial: debe incluir todos los tipos de métodos de servicio que necesitaría en cualquiera de las aplicaciones. Esto debe ser independiente de cómo se consumen, por lo que no debe haber ninguna referencia a ninguna capa web como MVC o aspDOTnet, etc. Debe ser un conjunto puro de métodos de servicio que toma objetos personalizados o primitivos como parámetros y devuelve objetos personalizados o primitivos como resultados.
- Ahora, cree una capa RESTful o de servicio web que no sea más que una envoltura alrededor de su capa de servicio empresarial. Esta capa no debería tener ninguna lógica de negocios. Debe aceptar parámetros del navegador y pasarlos al servicio comercial y viceversa.
Ahora, puede tener razones para crear una API de servicio separada para web y móvil según los siguientes criterios:
- ¿Puede un desarrollador de sitios web convertirse en desarrollador de aplicaciones?
- ¿Dónde encuentro la mejor empresa de desarrollo de aplicaciones para iOS?
- ¿Dónde puedo comenzar a crear una aplicación?
- ¿Cómo crean los desarrolladores aplicaciones de dibujo y pintura?
- ¿Cuál es la mejor herramienta de programación para aplicaciones móviles?
- Alcance de la aplicación móvil: si la aplicación móvil debe tener un alcance mínimo de lo que puede hacer y no debe tener acceso a todo lo que está haciendo la aplicación web.
- Aplicación web heredada y aplicación móvil moderna: si su aplicación web es heredada y su interfaz de servicio ya no cumple con los requisitos para la aplicación móvil moderna, entonces quizás tenga que considerar escribir servicios específicos para la aplicación móvil.
- Versiones de aplicaciones móviles: su aplicación móvil, si se distribuye a un público más amplio, tiene varias versiones que alcanzan su API al mismo tiempo. Porque no todos los usuarios tienen la misma versión de la aplicación. Y en tales escenarios, pocas de las llamadas de servicio tienen diferentes parámetros / interfaz para diferentes versiones de la aplicación. Esto también requiere mantener versiones de servicio separadas.
- Rendimiento: para el rendimiento de una aplicación móvil, el tamaño de los datos transferidos entre el servicio y el dispositivo móvil sería importante. En tales casos, sus servicios pueden tener objetivos diferentes para la interfaz web y móvil. Esto no significa que el rendimiento no sea importante para la web.
- Pruebas, ciclo de lanzamiento, mantenimiento: todos estos tres factores deben tenerse en cuenta al decidir esto. Con qué frecuencia los cambios en el servicio lo obligarán a cambiar la aplicación móvil, y si podrá lanzar esas versiones a las tiendas.
En el mundo idealista, debe haber una URL de servicio API para ambos, pero aborde los escenarios anteriores y luego decida qué funciona mejor para usted. Nunca hay un enfoque de cortador de galletas para todo.