Elaboração de uma API Restful utilizando o framework Spring Boot.
Linguagens, Frameworks e Bibliotecas utilizadas na construção do projeto.
Este projeto pode ser aplicado em diversas situações:
- Desenvolvimento de APIs RESTful em projetos Spring Boot.
- Utilização de Docker para facilitar a criação de contêineres e isolamento de serviços.
- Gerenciamento de banco de dados PostgreSQL com o uso do Flyway para migrações de banco de dados.
- Configuração de ambientes de desenvolvimento com Java, Maven e outras tecnologias.
Siga com precisão as orientações de configuração do ambiente para assegurar eficácia consistente no desenvolvimento do projeto.
- Java - você deve ter o Java JDK instalado em sua máquina.
- Maven - certifique-se de ter o Maven instalado para gerenciar as dependências.
- Docker Desktop - necessário para criar contêineres e executar serviços isolados.
- DataGrip - ferramenta para o gerenciamento do banco de dados.
- Git - ferramenta para o controle de versão.
- GitHub Desktop - ferramenta de auxílio no controle de versão.
- Spring Initializr - ferramenta online que para gerar uma estrutura básica de projetos Spring Boot com as dependências necessárias.
-
Acesse o Spring Initializr.
-
Configure as Opções do Projeto
- Project: selecione "Maven".
- Language: escolha "Java".
- Spring Boot: Selecione 3.2.0.
- Project Metadata: Preencha com o
Group
,Artifact
,Name
, eDescription
que você deseja. - Packaging: Escolha "Jar".
- Java: Selecione a versão 17.
-
Adicione Dependências:
- No campo de pesquisa de dependências, adicione as dependências a seguir para a criação de uma API REST Spring Boot:
- Spring Web
- Flyway Migration
- PostgreSQL Driver
- Spring Data JPA
- Lombok
- Validation
-
Faça o Download do Projeto: Clique no botão "Generate" para baixar um arquivo ZIP contendo a estrutura inicial do projeto.
-
Extraia o Arquivo ZIP em um diretório de sua escolha.
-
Importe o Projeto na sua IDE (como o IntelliJ IDEA, VSCode, Eclipse).
-
Verifique se as dependências foram instaladas corretamente no arquivo pom.xml.
-
Abra o Projeto na sua IDE
-
Configuração do Banco de Dados PostgreSQL
- Certifique-se de que o PostgreSQL esteja instalado e configurado.
- Crie um banco de dados no PostgreSQL para ser utilizado pela sua aplicação.
- Atualize as informações do banco de dados no arquivo
application.properties
dentro do diretóriosrc/main/resources
.
- Configuração do Flyway
-
Crie um diretório chamado
db/migration
dentro do diretóriosrc/main/resources
. -
Nele adicionaremos os scripts SQL de migração, seguindo o padrão de nomenclatura do Flyway.
-
Crie o file com o nome
V1__create-table-product.sql
- O padrão sempre será:
V
de versão1
[número da versão]__
underline duplocreate
[comando que você quer realizar]table
na tabelaproduct
[nome tabela]
- O padrão sempre será:
-
Insira o comando SQL a seguir:
- Execução das Migrações:
-
Inicie a aplicação Spring Boot acionando o botão "Run" da sua aplicação.
-
Durante o processo de inicialização, o Flyway irá automaticamente detectar e executar os scripts de migração localizados na pasta
db/migration
do diretóriosrc/main/resources
. -
Esses scripts contêm instruções SQL para criar ou modificar a estrutura do banco de dados conforme necessário.
-
O Flyway mantém um controle interno das migrações já aplicadas, garantindo que apenas novas migrações sejam executadas e permitindo uma visão clara das versões do banco de dados ao longo do tempo.
- Verificação das Migrações:
- Verifique no gerenciador do banco de dados (como DBeaver, DataGrip) se as migrações foram aplicadas corretamente.
- Em seu gerenciador do banco de dados deve aparecer duas tabelas:
flyway_schema_history
- tabela de controle de versionamento do banco de dados.sua_tabela_aqui
- tabela que você criou inicialmente no PostgreSQL e configurou o caminho na migrations.
-
Criação do Modelo (Model): Dentro do pacote
src/main/java/com/seupacote/domain/nomeEntidade
crie a classe que representa o modelo da entidade desejada. -
Anote a classe com @Entity e especifique detalhes como @Id e @GeneratedValue para a chave primária.
- Criação do Repositório (Repository):
- Em src/main/java/com/seupacote/repositories, crie uma interface que estende JpaRepository para a entidade desejada.
- Desenvolvimento do Controller:
- Em src/main/java/com/seupacote/controllers, crie uma classe de controlador, a qual deve conter a notação @RestController
Kimberly Spencer - [email protected].
GitHub: github.com/kspencerl
Este projeto é licenciado sob a [Nome da Licença](URL da Licença) - veja o arquivo LICENSE.md para mais detalhes.