Tarea académica ... Primero se nos dijo que generaramos un conjunto de .html
archivos estáticos que mostraran los resultados de las elecciones en varias divisiones administrativas. Luego nos dijeron que "modernizáramos" esto usando plantillas de Django. Justo, puedo ver los beneficios de tal enfoque.
Pero luego se nos dijo que "mordernizáramos" aún más esto haciendo que la aplicación sea "RESTful". Por lo que puedo decir, esto significa que el servidor solo puede exponer una API que responde a las solicitudes enviando datos sin procesar de los clientes en el formato JSON; el cliente, que es un sitio HTML + CSS + JS estático, debe recibir este JSON y luego construir dinámicamente la página web en el lado del navegador con JavaScript.
Dado que lamentablemente me perdí algunas conferencias, cuando esto debe haberse explicado, ¿alguien podría explicarme cuáles son los beneficios de este enfoque? Porque debo decir que solo puedo ver inconvenientes:
- Los usuarios con JavaScript deshabilitado no podrán ver la página.
- Corríjame si me equivoco, pero AFAIK los contenidos de dicho sitio difícilmente podrán ser indexados por Google.
- Será imposible que los usuarios marquen los resultados de las elecciones en una división en particular. En cambio, cada vez que visiten el lado, tendrán que hacer clic para que JavaScript cargue los resultados de esa división en particular. O despliegue un bot Selenium que haga esto por ellos.
- Rompe los botones del navegador hacia atrás / adelante.
Respuestas:
Técnicamente, un servidor web que sirve páginas HTML es RESTful. Text / Html es una representación válida perfectamente válida , siempre que el tipo de medio esté configurado correctamente, de acuerdo con la interfaz uniforme . Simplemente no abuse de sus verbos (GET, POST, etc.) y siga a HATEOAS (es decir, utilice esencialmente una URL sensible que identifique un recurso de forma exclusiva) y bam es tranquilo.
Creo que lo que pregunta su profesor es que sus páginas web usan una API RESTful que a menudo devuelve json (pero de nuevo puede devolver cualquier tipo de medio que el cliente acepte ).
En cuanto a sus objeciones:
Bueno, no podrán obtener ningún contenido dinámico. La página aún puede contener contenido estático.
El contenido estático, incluidas las metaetiquetas, aún se puede rastrear sin problemas.
Nah Si sigue correctamente a HATEOAS, la URL debe proporcionar toda la información de estado requerida para representar la página, y si está en la URL, se puede marcar como favorito.
fuente
XMLHttpResponse
, lo que no afecta lo que se muestra en la barra de direcciones del navegador. Entonces, para cualquier división administrativa que vea los resultados de las elecciones, la URL que se puede marcar es la misma y apunta a la página principal.Es una distinción sutil, pero está pasando de una página web a una aplicación web. En una página web, el servidor y el cliente están estrechamente acoplados; su única opción para ver información es a través de la página web.
Al mover los datos a un servicio web RESTful, la vista (lo que solía ser la página web) y el modelo (los datos) se desacoplan por completo, y aumentan sus opciones para interactuar con los datos.
fuente
Una API REST, como cualquier API, hace que los recursos estén disponibles en una interfaz legible por máquina que cualquier cliente puede usar.
Si usa esa API para construir su sitio web, es una de las muchas aplicaciones posibles que usan el mismo servicio.
Las ventajas del estilo REST son: - use un protocolo existente (aquí HTTP) para intercambiar los datos - use tipos de medios definidos para intercambiar recursos.
Esto significa que otros desarrolladores pueden usar el conocimiento y las herramientas existentes para usar su API.
fuente