1
resposta

DÚVIDA SOBRE API REST E APLICAÇÃO WEB

Bom dia!

Estou com dúvidas nos processos das aplicações, nas suas diferenças e no funcionamento.

Considerando que eu faça uma aplicação total (back-end e front-end), não tem como fazer a parte da segunça com token se tiver feito a a API Rest?

Estou com um pouco de difilculdade de compreender como são feitas as aplicações na prática, tenho que colocar o front-end e o back-end tudo junto usando o Thymeleaf? Ou faço separado e trato as requisições pelos endpoints? É tudo muito novo pra mim e ainda não está claro como e onde devo usar cada caso.

Ex.: Estou desenvolvendo em paralelo um projeto front-end com react e o backend com o spring boot, no banco de dados mysql, esse formato está correto nos padrões de desenvolvimento profissional?

Se eu não posso usar a apirest para o backend de um frontend separado, qual a aplicabilidade dela profissionalmente?

Me desculpe se são perguntas confusas ou "juvenis" é porque já estou fazendo os cursos mas essas abordagens não ficaram claras ainda.

1 resposta

Oi Queren!

Não se preocupe, são dúvidas comuns sim ;)

Basicamente, existem duas abordagens para se desenvolver uma aplicação:

  1. Aplicação Web tradicional (frontend + backend juntos no mesmo projeto)
  2. API Rest (frontend num projeto e backend em outro projeto)

Em aplicações Web tradicionais não se utiliza tokens para a parte de segurança, pois o frontend está totalmente integrado ao backend. Em java seria um projeto utilizando Spring Boot e a parte do frontend seria com Thymeleaf por exemplo. Nesse tipo de aplicação, os controllers não devolvem JSON, mas sim navegam para as páginas que estão no mesmo projeto e o HTML final dela será devolvido para o navegador.

Em API Rest, o backend não tem a parte visual do frontend, e por isso apenas recebe os dados (geralmente em JSON), faz validações, processamento, persistência, etc., e no final ele devolve apenas dados para quem disparou a requisição, pois não tem telas para navegar. É o caso onde o frontend será feito em outro projeto (geralmente com Angular ou React) e ele que faz as chamadas para a API e envia/recebe os dados. Como o front é separado, aqui entra o proceso de segurança utilizando tokens, pois são duas aplicações distintas se comunicando e não mais apenas uma mesma aplicação.

API Rest é mais indicado nos casos em que você terá mais de um cliente para a aplicação (navegador, app mobile, etc). Antigamente isso não existia, pois as aplicações eram acessadas pelos usuários apenas do navegador, então sempre fazia sentido devolver HTML como resposta. Mas quando temos um aplicativo mobile que também precisa se conectar com a aplicação, não faz sentido ele receber HTML de volta nas requisições, pois ele não utiliza HTML para desenhar os componentes visuais. Justamente por isso que o frontend foi desacoplado do backend. Ou seja, o backend agora apenas lida com as informações, mas cada cliente é reponsável por utilizar suas tecnologias específicas para desenhar os componenetes visuais e interagir com os usuários.