¿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

¿Qué tipo de lenguajes de programación utiliza un desarrollador de back-end?

¿Hay alguna oportunidad en el sector gubernamental para alguien con experiencia VLSI Frontend / Backend?

¿Qué debo aprender para el desarrollo web (front-end y back-end) en 2017?

¿Qué idioma de back-end me recomiendan para grandes sitios web con mucho tráfico en tiempo real?

¿Está mal especializarse solo en el desarrollo de backend?

¿Los programadores de back-end se burlan del diseño de front-end?

¿Qué es un back-end?

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

¿Cómo conectar una aplicación de Android con 'mi propio back-end de base de datos en tiempo real de Node.Js'? ¿Cómo lo mantengo sincronizado todo el tiempo con mi back-end?

¿Necesita saber C / C ++ para el desarrollo web (creación de sitios web / aplicaciones web, programación / trabajo de fondo)?

¿Cómo son las 'estructuras de back-end' de los juegos más grandes con alrededor de mil millones de jugadores, como los juegos de Supercell?

Si reinventara findthebest.com, ¿cuáles serían los idiomas del lado del servidor y del cliente que usará?

¿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?

¿Cuáles son los beneficios de aprender tanto la programación back-end como la programación front-end?

¿Cómo puedo convertirme en desarrollador web front-end y back-end? Actualmente sé HTML, CSS, hice un poco de Java y Ruby on rails. ¿Cuántas horas necesito?