TO-DO LIST!
Comando para startar a aplicação: mvn spring-boot:run
Link do Deploy para requisições: https://api-java-e-springboot-todo-e-usuarios.onrender.com
Rotas:
Rota de criação de usuários que gerarão a task. POST: https://api-java-e-springboot-todo-e-usuarios.onrender.com/users
-
Deve se passar um Body com as informações:
"username": "exemplo", "name": "exemplo exemplo", "password": "XXXXXX"
A rota abaixo funciona após a criação do usuário, você pode criar uma task desde que o usuário criado seja passado pelo Basic da requisição na aba Auth. POST: https://api-java-e-springboot-todo-e-usuarios.onrender.com/tasks/
A rota lista todas as tasks que foram criadas, desde que seja fornecido na aba Auth Basic os dados de login do usuário. GET: https://api-java-e-springboot-todo-e-usuarios.onrender.com/tasks/
A rota edita toda a task ou apenas uma propriedade dela e exibe o resultado como retorno, desde que seja passado o usuário através da aba Auth utilizando o Basic. PUT: https://api-java-e-springboot-todo-e-usuarios.onrender.com/tasks/IdDaTask
Aplicação hospedada no site da render: https://render.com/
Ao iniciar um projeto com o Spring, devemos utilizar o site https://start.spring.io/ que serve para gerarmos um projeto com todas as dependencias que utilizaremos, versão do spring Boot e Java.
Feito isso, basta descompactar o arquivo zip que o spring initlizr nos gerou e abrir na IDE de preferencia.
Uma dependencia que nos auxilia a escrever um código mais limpo e organizado e a biblioteca https://projectlombok.org/setup/maven, project lombok, ela nos auxilia no caso de gerar os nossos arquivos UsersModel.java, pois nele quando declaramos as nossas propriedades como private, para acessa-las é necessario gerarmos os Getters e os Setters, e o que antes ficava assim:
//O set insere o valor
public void setUsername(String username) {
this.username = username;
}
// o get recupera (busca) esse valor
public String getUsername() {
return username;
}
Isso precisaria ser feito para todas as propriedades, exemplo, se existisse as propriedades; nomedeusuario, email, senha, endereço, posts. Deveria ser feito para todas elas, mas que com a utilização do project lombok isso se soluciona apenas utilizando uma anotation "@Data" e para utiliza-la deve-se sempre lembrar de acessar o arquivo pom.xml e dentro de dependecies criar a dependency para que seja utilizada no projeto:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.36</version>
<scope>provided</scope>
</dependency>
ESTRUTURA DE PASTAS:
Entendemos que o Java é recursivo, logo, se eu for criar um arquivo para os meus controllers e os meus midlewers por exemplo, elas devem estar dentro da pasta onde está localizado o meu arquivo Application.java, pois o meu projeto se starta ali e em seguida vai lendo as demais classes e métodos acima.
A utilização do banco de dados H2 que é um banco de dados em memória não serve para enviar a API para produção, pois com um banco de dados em memória, reiniciou a aplicação os dados são perdidos, mas pode ser utilizado para produção um Postgres, Sql, MariaDB e por ai vai.
Como acessar um banco H2 - http://localhost:8080/h2-console