1
resposta

[Dúvida] Mão na massa: criando o microsserviço de pedidos

Alguém poderia resumir como eu posso instalar e fazer tudo de forma correta? Eu instalei pelo Spring etc, mas o Intellij que uso é aquele que o estudante tem acesso de graça. Eu tenho que instalar o pgadmin separado? Eu gostaria de um mini resumo no literal para que eu possa entender como instalar e criar o arquivo de forma correta, eu procurei o tal zip pra baixar e não consegui achar...

1 resposta

Oi Celina! Como vai?

Primeiramente, você deve acessar o site do Spring Initializr (https://start.spring.io/) para gerar seu projeto. Lá, configure da seguinte forma: escolha Maven como gerenciador de dependências, linguagem Java, versão do Spring Boot 3.4.x, e preencha os campos com o Group como br.com.techtaste e o Artifact como ms-pedidos. O nome do projeto também será ms-pedidos e a versão do Java deve ser 21. Adicione as seguintes dependências: Spring Web, Spring Data JPA, PostgreSQL Driver, Validation e DevTools. Feito isso, clique em "Generate" para baixar o projeto e depois descompacte-o em uma pasta no seu computador.

O próximo passo é abrir o IntelliJ e importar esse projeto descompactado. Assim que ele estiver aberto, você precisará configurar a conexão com o banco de dados. No arquivo application.properties, que está dentro de src/main/resources, inclua as configurações para o PostgreSQL. Você deve informar a URL de conexão, o nome de usuário e a senha do banco. Além disso, configure o Hibernate para atualizar automaticamente as tabelas, e ative a exibição dos comandos SQL no console.

O conteúdo do arquivo ficará mais ou menos assim:

spring.datasource.url=jdbc:postgresql://localhost:5432/ms-pedidos-db
spring.datasource.username=seu_usuario
spring.datasource.password=sua_senha
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

Lembrando que antes de rodar o projeto, é necessário criar o banco de dados no PostgreSQL. Você pode fazer isso através do PgAdmin ou executando um comando SQL como este: CREATE DATABASE ms-pedidos-db;

Se ainda não tiver, será necessário instalar o PgAdmin, que é uma ferramenta gráfica para gerenciar bancos PostgreSQL. O download pode ser feito diretamente no site oficial do PostgreSQL já que o PgAdmin é instalado em conjunto com ele. Qualquer dúvida durante a instalação veja essa aula, de outro curso, para se orientar.

Em relação à organização do código, dentro do pacote principal br.com.techtaste.ms_pedidos, crie os seguintes pacotes: controller, service, repository, model e dto. Cada um desses pacotes terá uma responsabilidade específica dentro do projeto.

br.com.techtaste.ms_pedidos 
 ├── controller 
 ├── service 
 ├── repository 
 ├── model 
 └── dto 

No pacote model, você irá criar as classes que representam as entidades, como Pedido e ItemPedido, utilizando as anotações da JPA. Também é necessário criar um enum chamado Status, que vai representar o estado dos pedidos. No pacote repository, crie a interface PedidoRepository estendendo JpaRepository para facilitar as operações com o banco de dados. No pacote dto, você criará as classes PedidoRequestDto e PedidoResponseDto, que serão usadas para a comunicação entre cliente e servidor. Na camada de service, desenvolva a classe PedidoService com a lógica de negócios do seu microsserviço. Por fim, no pacote controller, crie a classe PedidoController, que será responsável por expor as APIs REST.

Depois que tudo estiver implementado, você pode testar o seu microsserviço usando uma ferramenta como o Postman. Para testar a criação de um pedido, por exemplo, envie uma requisição POST para a API com um JSON semelhante a este:

{
  "cpf": "123.456.789-10",
  "itens": [
    {"quantidade": 4, "descricao": "coca-cola", "valorUnitario": 8.99},
    {"quantidade": 1, "descricao": "combo sushi", "valorUnitario": 65}
  ]
}

Se tudo estiver correto, o microsserviço irá processar esse pedido e armazenar no banco de dados. Qualquer dúvida, pode me chamar.

Bons estudos e sucesso no desenvolvimento!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.