Executando verificação de segurança...
4

Desenvolvendo API em Java sem Frameworks

Olá, pessoal!

Estou passando por um desafio e gostaria de compartilhar com vocês. Preciso desenvolver uma API em Java para um projeto da faculdade, mas estou enfrentando algumas dificuldades porque não tenho experiência com a linguagem.

Meu maior obstáculo até agora tem sido encontrar tutoriais que não utilizem frameworks como o Spring. Acredito que começar direto com um framework pode acabar atrapalhando meu aprendizado. Prefiro seguir um passo de cada vez.

Se alguém tiver dicas ou sugestões de materiais mais básicos, focados em Java puro, ou até mesmo opniões em relação a esse assunto, seriam muito bem-vindas!

Repositório

Carregando publicação patrocinada...
2

Eu estava pesquisando um pouco sobre o assunto e fiz um pequeno exemplo nesse repositório aqui: https://github.com/Matheus1714/sample-java-api

Eu não usei nenhum pacote externo ou framework.

A parte difícil disso é que o projeto fica bagunçado bem rápido se não manter uma estrutura boa.

Fique tendo que fazer muitas manipulações com String no processo.

Talvez eu melhore um pouco a estrutura do repositório em algumas camadas a mais para ver como fica. Eu já tinha feito isso com Javascript, mas nunca com Java.

1

aaah obg pela refrencia, vou dar uma olhada no seu repositório, creio que possa ficar meio bagunçado mesmo, mas se separar a aplicação em camadas e usar os princípios da POO deve ajudar...

vlw

2

No caso do Javascript, acho até sua estratégia adequada de aprender a fazer algo sem uso de framework.
Mas, no caso do Java, creio que não é melhor caminho , 99% do que vai ser exigido de ti será conhecimento sobre diversos frameworks e não a linguagem em si.

1

Ah entendo, eu venho do JavaScript, por isso devo ter essa mentalidade. Estou inclinado a utilizar o Spring mesmo, obrigado por compartilhar sua visão sobre o assunto.

1

Você não vai querer escrever um Http Server do zero.

Pesquise "Java Servlets Tutorial" no Google, desenvolva uma aplicação e a deploye em um http server como Tomcat, Wildfly etc.

1

Se você não tem experiência com a linguagem estude um pouco sobre ela pra ter uma base, entender o básico e conseguir compilar e rodar um projeto.
Depois dê uma olhada em alguma biblioteca http para Java, com uma pesquisa rápida encontrei essa, HttpServer.
Com um framework talvez seja menos verboso e mais fácil de entender pelo nível de abstração dos métodos que for usar.

2

Então, já começei a estudar e tenho uma base já, mas no caso do desenvolvimento de servidores web eu fiquei meio com dúvida em relação a isso. Obrigado por compartilhar sua visão sobre. Dei uma lida nessa biblioteca, inclusive começei a utilizar ela, mas notei que é necessário escrever muita coisa para realizar a criação de uma simple rota.

1

Foi como disse, um framework abstrai muito do que você precisaria escrever, sem eles é uma boa pra aprender como funciona uma requisição, quais são os headers necessários para cada método e afins, mas que é verboso é. Você pode ir tentando abstrair essa lógica em uma classe e alguns métodos também.
Um bom exercício é tentar fazer um crud simples sem frameworks, em memória ou com um sql, depois tentar recriar com um framework e por fim se quiser, tentar refatorar a implementação pura, recomendo isso porque é o que funciona comigo quando vou estudar alguma linguagem nova, talvez não funcione contigo mas vale tentar.

2

Entendi, eu compartilho muito dessa visão seu, gosto de entender como tudo funciona por baixo dos panos, e também gosto bastante de desafios, mas eu preciso realizar a entrega desse projeto em 1,5 mês, por isso acho que vou optar pelo spring.

Concerteza vou curiar dps para entender como ficaria a API sem fremework e me desafiar um pouco. Valeu pela dica!

1

Nossa, porreta esse desafio, hein my man. Eu sou DEV Front, mas no início dos meus estudos e nos meus tempos de FACUL, estudei um pouco de JAVA. O professor Nélio Alves (melhor curso de Java que já vi), até demonstrava a complicação que seria em certas situações, caso não tivesse o SPRING, o trampo absurdo para certas coisas como injeção de dependência e ETC.

Na minha opinião você deve dominar o básico de JAVA para depois sim ir para a construção de API usando um FRAMEWORK. Não tente usar Framework para aprender linguagem, eu fiz isso no Front com o Laravel, React, NEXT e no Java com o SPRING é só consegui me sentir um jumento completo por empacar em tudo kkkkkkkkkkkkkkk. Só consegui fazer algo decente, quando parei para aprender a linguagem básica bem, pra depois voltar nos Frames... Se não tiver tentando, vá variando entre aprender a linguagem e o framework.

Aquele abrss e boa sorte!

1

porreta ne véikk, ent eu estava com medo disto mesmo, ficar empacado e nao ter flexibilidade por eu saber somente sobre o framework e não conhecer as ferramentas padrões da linguagem.

obrigado pela sua visão e por compartilhar sua experiência, tmj

1

Fazer isso é bom pra conhecimento, ja fiz isso com js/ts e até nessa lang facil é chato demais, imagina em Java.

"Nunca fiz mal pro cara e ele me manda desenvolver uma API em java sem framework"

1

Cara, vamos por partes. Vc já aprendeu a sintaxe? Se sim, e vc sabe que precisa criar uma Rest API, vc pode ir direto com Spring Boot e qualquer tutorial de meia hora da internet vc vai resolver o seu problema. Eu não gosto muito dessa opção, pq vc fica com a mente meio engessada em relação aos conceitos, tipo vc sabe aplicar e fazer o que precisa ser feito no trabalho, mas na hora de customizar vc vai ter muitas dificuldades pq não vai saber o pq tá mexendo em cada coisa. E quando configurar uma pode acabar impactando em outras. Eu aprendi a mexer com Spring desse jeito de sair fazendo sem entender, pq me jogaram em um projeto na minha antiga empresa, com uma arquitetura DDD já pronta, aí eu já sou meio desenrolado com a questão das camadas de software e fui entendendo o que cada classe tinha que fazer. Aí entreguei o projeto, mas sempte seguindo a mesma arquitetura. Se precisasse fazer de outra forma, eu não saberia dizer o pq escolhi cada camada. Hj eu estou alocado em uma empresa que usa o Java EE, então eu estou estudando mais sobre isso. Eu acho que se vc quiser criar uma API sem framework, vc poderia usar o JAX-RS ou Servlets. Mas vc vai precisar configurar alguns arquivos de configuração das requisições Http, coisas como Interceptors e Filters.

1

caramba, valeu pela ajuda e pelas referencias amigo, vou dar uma olha nessas bibliotecas.

eu queria fazer sem fremework justamente por causa disso mesmo, pela questão do aprendizado e não ficar dependendo de uma certa arquitetura ou fremework.

valeu tmj

1
1

ola tudo, meo achei mt legal seu projeto, bem diferencia, gosto bastante de IOT tb.

essa referência do seu repositório será útil na hora que eu for desenvolver, vlw

1

Vc pode fazer com Servlets, mas a complexidade para vc q não tem familiaridade, não sei se vale a pena, precisa configurar o ambiente servidor Tomcat, dependencias na mão se não quiser usar o Maven, sem falar que jdbc a configuração é tudo manual.

1

Obrigado pela dica, eu realmente não conhecia os Servlets. Acho que, por mais que eles simplifique o desenvolvimento sua configuração ainda parece ser um pouco chata.

Bom, eu comecei a fazzer com o módulo HTTP do Java mesmo, e vou te dizer... É MUITO VERBOSO, viu!, mas estou mantendo bem estruturado(a medida do possível) e esta dando certo.

https://github.com/Moyseys/quadro/tree/main/api

0

Oi, se for pra consumir uma API, você pode estar usando as classes HttpClient, tipo, com o Java puro, com método main e tals.

Se for pra fornecer um endpoint Rest, você pode criar utilizando o servidor Wildfly, seguindo a especificação JavaEE.

https://start.jakarta.ee/

No starter do JakartaEE (nome novo do JavaEE), você já pode criar o projeto Maven com o Wildfly no Docker, com um endpoint de Hello Worls já configurado.