¿Debo desarrollar una API separada para mi aplicación móvil y mi aplicación web?

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.

  1. 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.
  2. 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

No. El objetivo de una API (en este sentido) es hacerla utilizable en la mayor variedad de situaciones posible. Desea hacer todo lo posible para exponer todos los datos y comportamientos que tiene su sitio de la manera más general y dejar que cualquier cliente autenticado lo use. La forma más común de hacer esto es hacer que su API sea RESTful (transferencia de estado de representación – Wikipedia). De esta manera, su API no tiene que cambiar con cada nuevo tipo de cliente posible. Ahora preguntas sobre la web y la movilidad, pero en el futuro puede haber otros tipos de clientes que querrás consumir tu API. Si su API está bien construida, no tendrá que cambiarse en absoluto.

No, no debe separar la API para su aplicación móvil y su aplicación web.

No.

Las mismas API están destinadas a ser utilizadas por diferentes front-end, pero debe manejar las opciones necesarias usando banderas y argumentos