Aplicações WEB Restful

Hoje o Front esta sendo cada vez mais importante no desenvolvimento de aplicações web, gostaria da opinião dos colegas com relação a escolha de tecnologias para desenvolvimento WEB, se vale a pena investir nas aplicações web RESTFUL utilizando combos como: JAX-RS + Angular/Spring MVC + Angular, e se essa separação total da view e atribuição de maiores responsabilidades no client-side esta dando bons frutos(MVVM).

Estou com esta dúvida pois futuramente pretendo iniciar o desenvolvimento de um sistema WEB e estou selecionando algumas tecnologias para aproveitar e aprender.

Agradeço desde já.

Sim pode seguir essa linha. Só nao precisa do JAX-RS. Pode ser Angular/Spring MVC com Restful ou Spring Boot se quiser experimentar. Bootstrap também pode te ajudar no lado client.

Algum contra com relação ao JAX-RS? estou tirando a certifação EJB e gostaria a principio de utilizar tecnologias JEE.

Por considerar Spring MVC mais flexível quando voce precisar trabalhar não só com REST, pois cuidado com a moda “REST pra tudo”. Mas se o seu objetivo com essa aplicacao não for mercado real e sim certificação então pratique sim JAX-RS.

Quando você diz , “cuidado com REST para tudo”, vc poderia citar um exemplo de como é aplicado de forma errada?

Algum contra com relação ao JAX-RS? estou tirando a certificação EJB e gostaria a principio de utilizar tecnologias JEE.[/quote]Nesse caso você teria que usar EJB e não Spring. (:

Essa combinação (front rest desacoplado do backend) tem sido muito utilizada.

Acho que o correto seria falar (HTML + Angular) <—> (JAX-RS + RestEasy e EJB). O Angular pode ficar totalmente desacoplado da aplicação. (:

Algum contra com relação ao JAX-RS? estou tirando a certificação EJB e gostaria a principio de utilizar tecnologias JEE.[/quote]Nesse caso você teria que usar EJB e não Spring. (:

Essa combinação (front rest desacoplado do backend) tem sido muito utilizada.

Acho que o correto seria falar (HTML + Angular) <—> (JAX-RS + RestEasy e EJB). O Angular pode ficar totalmente desacoplado da aplicação. (:[/quote]

Hebert primeiramente obrigado pelas considerações.

Gostaria de entender o pq da sua afirmação de que teria que ser EJB e não Spring.

Além disso, sou noob com relação ao Angular, o que me deixa na dúvida ao desacoplar totalmente a view em Angular com o backend seria o controle de autorização para acesso as paginas, como isso pode ser feito se não temos os Filters como aliados neste caso

Algum contra com relação ao JAX-RS? estou tirando a certificação EJB e gostaria a principio de utilizar tecnologias JEE.[/quote]Nesse caso você teria que usar EJB e não Spring. (:

Essa combinação (front rest desacoplado do backend) tem sido muito utilizada.

Acho que o correto seria falar (HTML + Angular) <—> (JAX-RS + RestEasy e EJB). O Angular pode ficar totalmente desacoplado da aplicação. (:[/quote]

Hebert primeiramente obrigado pelas considerações.

Gostaria de entender o pq da sua afirmação de que teria que ser EJB e não Spring.

Além disso, sou noob com relação ao Angular, o que me deixa na dúvida ao desacoplar totalmente a view em Angular com o backend seria o controle de autorização para acesso as paginas, como isso pode ser feito se não temos os Filters como aliados neste caso

[/quote]Spring não é JEE (oficial do Java e tals), ele é uma biblioteca a parte.

Se você quer seguir com JEE puro, use o EJB e não o Spring.

Você poderá fazer autenticação por token, por exemplo. Essa autenticação será manual e você poderá usar aspecto, interceptors e etc.

Voce vai ter que estudar essas parafernálias do JEE, como esse EJB, se o seu objetivo for certificação. Fora isso, pode escolher opções que julgar melhor, onde na prática não tem a menor importância usar algo por ser “oficial do Java”. As vezes pelo contrário, JSF é um grande exemplo de bomba oficial.

Sobre um caso que usar Rest seria desnecessario, hotsites por exemplo ou páginas de conteúdo que não necessitam de novas ações para a mesma página, somente precisando trazer o Html pronto de uma vez, sem posteriores interações envolvendo requisições na mesma página.

Dá uma lida no livro “RESTful Java With JAX-RS” que vai te ajudar bastante. Tome o cuidado de pegar a edição mais recente.

Algum contra com relação ao JAX-RS? estou tirando a certificação EJB e gostaria a principio de utilizar tecnologias JEE.[/quote]Nesse caso você teria que usar EJB e não Spring. (:

Essa combinação (front rest desacoplado do backend) tem sido muito utilizada.

Acho que o correto seria falar (HTML + Angular) <—> (JAX-RS + RestEasy e EJB). O Angular pode ficar totalmente desacoplado da aplicação. (:[/quote]

Hebert primeiramente obrigado pelas considerações.

Gostaria de entender o pq da sua afirmação de que teria que ser EJB e não Spring.

Além disso, sou noob com relação ao Angular, o que me deixa na dúvida ao desacoplar totalmente a view em Angular com o backend seria o controle de autorização para acesso as paginas, como isso pode ser feito se não temos os Filters como aliados neste caso

[/quote]Spring não é JEE (oficial do Java e tals), ele é uma biblioteca a parte.

Se você quer seguir com JEE puro, use o EJB e não o Spring.

Você poderá fazer autenticação por token, por exemplo. Essa autenticação será manual e você poderá usar aspecto, interceptors e etc.[/quote]

Entendi, pensei que quando você falou que teria que usar EJB, isso seria devido a limitações tecnicas, mas na verdade você estava se referindo ao fato de eu querer me certificar.

Outra coisa, tenho mais algumas dúvidas se vocês puderem me ajudar

-No caso estes aspectos e interceptors que você mencionou seriam no client-side?

-E se eu quiser me aproveitar de alguns recursos do Java e rodar as paginas com Angular no mesmo tomcat e utilizar filters/listeners/jstl entre outras coisas, é interessante ou uma má pratica neste caso?

Vou dar uma olhada Rodrigo, muito obrigado pela dica

[quote=javaflex]Voce vai ter que estudar essas parafernálias do JEE, como esse EJB, se o seu objetivo for certificação. Fora isso, pode escolher opções que julgar melhor, onde na prática não tem a menor importância usar algo por ser “oficial do Java”. As vezes pelo contrário, JSF é um grande exemplo de bomba oficial.

Sobre um caso que usar Rest seria desnecessario, hotsites por exemplo ou páginas de conteúdo que não necessitam de novas ações para a mesma página, somente precisando trazer o Html pronto de uma vez, sem posteriores interações envolvendo requisições na mesma página.[/quote]

Obrigado pela resposta, no atual contexto de trabalho em que estou inserido, para mim é melhor seguir a trilha de certificações, além de eu gostar bastante de JEE e da forma como as especificações estão evoluindo, acredito que é uma ótimo jeito para abrir novas portas.

No caso do hotsite que você mencionou, o servidor traria a pagina com todas as informações sem necessidade de requisições AJAX na mesma pagina. Supondo o que o conteudo da pagina esteja em um banco, seria necessario que as paginas estivessem na mesma aplicação que o seu back-end em java por exemplo para que fosse possivel buscar as informações, ou em um servidor PHP para efetuar a consulta no banco, nesse caso não seria possivel manter as paginas totalmente separas sem que houvesse a necessidade de utilizar um back-end em java/php ou qualquer outra coisa certo?A minha grande dúvida é : Seria interessante manter essas paginas sem precisar utilizar um PHP ou JAVA para renderizar a pagina por completo , e para isso utilizar o ANGULAR para buscar informações via AJAX?

Interessante é experimentar os dois lados para quando tiver um caso real saber decidir o que vai ser mais confortável para manter. Não existe receita de bolo, mas decidir o que vai ser melhor na hora que o caso surgir na prática. Não por alguem pregar que para todos os casos é melhor não requisitar HTML completo do Java ou PHP.

[quote=Hebert Coelho]

Se você quer seguir com JEE puro, use o EJB e não o Spring.

Você poderá fazer autenticação por token, por exemplo. Essa autenticação será manual e você poderá usar aspecto, interceptors e etc.[/quote]

Acho que usar CDI no lugar de EJB torna a aplicação mais flexível,além do mais,CDI fornece várias coisas que Spring já implementa,provendo flexibilidade e produtividades similares ao que Spring fornece. Logo,começar um projeto apenas com ejb,hoje em dia não seria algo recomendável,em favor do CDI.

[quote=Ramon Pires][quote=Hebert Coelho]

Se você quer seguir com JEE puro, use o EJB e não o Spring.

Você poderá fazer autenticação por token, por exemplo. Essa autenticação será manual e você poderá usar aspecto, interceptors e etc.[/quote]

Acho que usar CDI no lugar de EJB torna a aplicação mais flexível,além do mais,CDI fornece várias coisas que Spring já implementa,provendo flexibilidade e produtividades similares ao que Spring fornece. Logo,começar um projeto apenas com ejb,hoje em dia não seria algo recomendável,em favor do CDI.[/quote]
Eu disse para usar o EJB justamente por ele começou dizendo que quer estudar para certificação de EJB.

[quote=Ramon Pires]
Acho que usar CDI no lugar de EJB torna a aplicação mais flexível,além do mais,CDI fornece várias coisas que Spring já implementa,provendo flexibilidade e produtividades similares ao que Spring fornece…[/quote]
Pelo fato dele querer fazer certificação vai ter que estudar o mundo bizarro do JEE todo.

E só tem que ter cuidado pra não usar todo esse excesso de engenharia para uma aplicação real, ou seja, fazer mais para passar na certificação.