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

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages