Tarefa acadêmica ... Primeiro, foi-nos dito para gerar um conjunto de .html
arquivos estáticos mostrando os resultados das eleições em várias divisões administrativas. Então nos disseram para "modernizar" isso usando modelos do Django. Justo, posso ver os benefícios dessa abordagem.
Mas nos disseram para "mordernizar" ainda mais isso, tornando o aplicativo "RESTful". Tanto quanto sei, isso significa que o servidor pode expor apenas uma API que responde às solicitações enviando dados brutos aos clientes no formato JSON; o cliente, que é um site HTML + CSS + JS estático, deve receber esse JSON e construir dinamicamente a página da Web no lado do navegador com JavaScript.
Como, infelizmente, perdi algumas palestras, quando isso deve ter sido explicado, alguém poderia me explicar quais são os benefícios de tal abordagem? Porque devo dizer que só posso ver desvantagens:
- Usuários com JavaScript desativado não poderão visualizar a página.
- Corrija-me se eu estiver errado, mas o AFAIK dificilmente poderá ser indexado pelo Google.
- Será impossível para os usuários marcarem os resultados das eleições em uma divisão específica. Em vez disso, cada vez que eles visitam o lado, eles precisam clicar para fazer o JavaScript carregar os resultados dessa divisão específica. Ou implante um bot Selenium que faça isso por eles.
- Ele quebra / retrocede os botões do navegador.
Respostas:
Tecnicamente, um servidor Web que serve páginas HTML é RESTful. Text / Html é uma representação perfeitamente válida válida , desde que o tipo de mídia esteja definido corretamente, de acordo com a interface uniforme . Apenas não abuse dos verbos (GET, POST, etc) e siga o HATEOAS (ou seja, use essencialmente uma URL sensata que identifique exclusivamente um recurso) e bam é repousante.
Acho que o que seu professor está perguntando é que suas páginas da Web usam uma API RESTful que geralmente retorna json (mas, novamente, pode retornar qualquer tipo de mídia que o cliente aceite ).
Quanto às suas objeções:
Bem, eles não poderão obter nenhum conteúdo dinâmico. A página ainda pode conter conteúdo estático.
O conteúdo estático, incluindo as metatags, ainda pode ser rastreado sem problemas.
Nah. Se você seguir o HATEOAS corretamente, o URL deverá fornecer todas as informações de estado necessárias para renderizar a página e, se estiver no URL, poderá ser marcado como favorito.
fonte
XMLHttpResponse
, o que não afeta o que é mostrado na barra de endereços do navegador.! Portanto, para qualquer divisão administrativa que eu visualizar os resultados das eleições, o URL que pode ser marcado como favorito é o mesmo e aponta para a página principal.É uma distinção sutil, mas você está passando de uma página da web para um aplicativo da web. Em uma página da web, o servidor e o cliente estão fortemente acoplados; sua única opção para visualizar informações é através da página da web.
Ao mover os dados para um serviço da web RESTful, a visualização (que costumava ser a página da web) e o modelo (os dados) são completamente dissociados e suas opções para interagir com os dados aumentam.
fonte
Uma API REST, como qualquer API, disponibiliza os recursos em uma interface legível por máquina que qualquer cliente pode usar.
Se você usa essa API para criar seu site, é um dos muitos aplicativos possíveis usando o mesmo serviço.
As vantagens do estilo REST são: - use um protocolo existente (aqui HTTP) para trocar os dados - use tipos de mídia definidos para trocar recursos.
Isso significa que outros desenvolvedores podem usar o conhecimento e as ferramentas existentes para usar sua API.
fonte