¿De qué manera los front-end (Android, iOS, una aplicación Angular.js, etc.) se comunican con el back-end, a través de las API RESTful?

Aparte de REST, puede usar:

  • WebSockets o Socket.IO, que es bueno para la comunicación en tiempo real entre una aplicación web y un back-end. Algunas de las API (web) a continuación probablemente usen esto debajo de las cubiertas.
  • GraphQL [1], que es bueno para simplificar su API. Estaba escuchando sobre GraphCool como una manera fácil de configurar esto. [2]
  • API patentadas como Firebase. Toda la API y el back-end de la base de datos como servicio.
  • Horizon [3], una API de código abierto en tiempo real análoga a la parte de la base de datos de Firebase.
  • Para una aplicación móvil, una cola de mensajes como ZeroMQ puede brindarle un mayor rendimiento que un protocolo estrictamente basado en TCP. Dependiendo de sus necesidades, también podría ofrecer mejores patrones de acceso.

Esas son las alternativas más populares que se me ocurren.

Notas al pie

[1] GraphQL: un lenguaje de consulta para API.

[2] GraphQL Backend como servicio

[3] el backend JavaScript de código abierto en tiempo real

RESTful es el camino a seguir para la mayoría de esas comunicaciones.

Donde he visto un cambio es comunicar JSON en ambos sentidos. El inconveniente es que no puede probar tales API ingresando argumentos de URL. Por otro lado, puede expresar casi cualquier información de esta manera, incluidas las matrices asociativas multidimensionales complejas, etc. Todos los idiomas que están destinados a crear aplicaciones web tienen llamadas para analizar y generar JSON a partir de estructuras de datos nativas, por lo que el código es una pieza de pastel para trabajar. Incluso podrías llamarlo elegante :).

Otro cambio (o al menos una variante de RESTful) es usar POST para todo, y no GET, PUT o DELETE.

También puede usar SOAP, pero, francamente, JSON cubre la mayoría de los casos.

A veces he usado FTP para cargar archivos de forma masiva, combinado con RESTful para decirle a los sistemas qué archivos se han cargado.

WebDAV también se puede usar para transferencias de archivos.

More Interesting

¿Cómo reaccionaría usted, como jefe, ante un desarrollador front-end que desea trabajar en el back-end?

Cómo conectar mi aplicación con un servidor MySQL back-end con C # en Android Studio

¿Cuánto front-end y back-end debe saber un desarrollador antes de que pueda considerarse un desarrollador full-stack?

¿Qué debe saber un buen desarrollador de back-end de Java?

¿Cuál es el mejor lenguaje / marco para un back-end diseñado para interactuar con varias plataformas (aplicación iOS, habilidad Alexa, sitio web, etc.)?

¿Cuáles son los mejores lenguajes de programación de back-end para la página web?

¿Es más fácil ser un desarrollador web back-end o front-end?

¿Qué son los términos front-end, back-end, del lado del cliente y todos los demás términos relacionados en el desarrollo y administración web? ¿Qué quieren decir?

¿Por qué no se encuentran juntas de expansión a los lados de las carreteras? Los veo en la parte posterior y frontal, lo que tiene sentido.

¿Qué idioma se usa para crear el back-end de un sitio web?

¿Se deben manejar las solicitudes HTTP fusionadas en el front-end o el back-end?

¿Es C ++ mejor para el rendimiento con una aplicación web científica (backend)?

¿Cómo colaboran el desarrollador front-end y los desarrolladores back-end?

Si quisiera crear un sitio como Quora, ¿cómo gestionaría mis desarrolladores front-end y back-end por separado y de manera eficiente?

¿Cuáles son los pros y los contras de usar RoR vs Go en el back-end, cuáles son las situaciones en las que usar uno de ellos es imprescindible en lugar del otro?