Skip to content

digonexs/product-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Produtos API

API REST de gerenciamento de produtos desenvolvida durante o curso Java Expert da Udemy.

Sobre o Projeto

Este projeto é uma API RESTful construída com Spring Boot 3 para demonstrar os fundamentos de desenvolvimento de APIs com Java moderno. O sistema permite criar, consultar, atualizar e deletar produtos (CRUD completo).

Tecnologias Utilizadas

Tecnologia Versão Descrição
Java 21 Linguagem principal
Spring Boot 3.2.5 Framework base da aplicação
Spring Web - Criação de endpoints REST
Spring Data JPA - Camada de persistência/ORM
H2 Database - Banco de dados em memória
Lombok - Redução de boilerplate (getters, setters, etc.)
Spring Boot DevTools - Reload automático em desenvolvimento
Maven - Gerenciamento de dependências e build

Estrutura do Projeto

src/
└── main/
    ├── java/com/rodrigo/produtosapi/
    │   ├── ProdutosApiApplication.java   # Classe principal / entry point
    │   ├── controller/
    │   │   └── ProdutoController.java    # Endpoints REST
    │   ├── model/
    │   │   └── Produto.java              # Entidade JPA
    │   └── repository/
    │       └── ProdutoRepository.java    # Interface de acesso ao banco
    └── resources/
        ├── application.yml               # Configurações da aplicação
        └── data.sql                      # Script de criação do schema

Conceitos Abordados no Curso

1. Criacao de uma API REST com Spring Boot

  • Configuracao do projeto via Spring Initializr
  • Estrutura de pacotes (controller, model, repository)
  • Anotacao @SpringBootApplication e funcionamento do contexto Spring

2. Entidade JPA (Model)

  • Mapeamento objeto-relacional com @Entity e @Table
  • Definicao de chave primaria com @Id e @Column
  • Uso de POJO (Plain Old Java Object) como entidade persistida

3. Repository Pattern com Spring Data JPA

  • Extensao de JpaRepository<T, ID> para operacoes CRUD automaticas
  • Criacao de queries derivadas de metodo: findByNome(String nome)

4. Controller REST

  • @RestController e @RequestMapping para mapear rotas
  • Verbos HTTP mapeados com @PostMapping, @GetMapping, @PutMapping, @DeleteMapping
  • Leitura de corpo da requisicao com @RequestBody
  • Leitura de parametros de URL com @PathVariable e @RequestParam
  • Geracao de ID unico com UUID.randomUUID()

5. Banco de Dados H2 (em memoria)

  • Configuracao via application.yml
  • Console web disponivel em /h2-console
  • Script SQL (data.sql) para criacao automatica do schema

6. Configuracao com application.yml

  • Datasource, dialeto JPA e console H2 configurados de forma declarativa

Endpoints da API

Base URL: http://localhost:8080

Metodo Endpoint Descricao
POST /produtos Cadastra um novo produto
GET /produtos/{id} Busca produto pelo ID
GET /produtos?nome={nome} Busca produtos pelo nome
PUT /produtos/{id} Atualiza os dados de um produto
DELETE /produtos/{id} Remove um produto pelo ID

Exemplos de Requisicao

Cadastrar produto (POST /produtos)

{
  "nome": "Notebook",
  "descricao": "Notebook Dell Inspiron 15",
  "preco": 3599.90
}

Resposta (200 OK)

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "nome": "Notebook",
  "descricao": "Notebook Dell Inspiron 15",
  "preco": 3599.90
}

Como Executar

Pre-requisitos

  • Java 21+
  • Maven 3.8+

Rodando a aplicacao

# Clonar o repositorio
git clone <url-do-repositorio>

# Entrar no diretorio
cd produtosapi

# Executar com Maven Wrapper
./mvnw spring-boot:run

A API estara disponivel em http://localhost:8080.

O console do banco H2 estara disponivel em http://localhost:8080/h2-console com as credenciais configuradas no application.yml:

  • JDBC URL: jdbc:h2:mem:produtos
  • Username: sa
  • Password: admin

Curso

Java Expert — Udemy Conteudo voltado para o desenvolvimento de aplicacoes Java com Spring Boot, abordando desde os fundamentos ate boas praticas de desenvolvimento de APIs RESTful.

About

Product API created during the 'Java Expert' course.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages