Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API de Produtos

Desafio realizado durante o treinamento do programa Starter na GFT. O objetivo era aplicar os conceitos apreendidos de API's Rest com Spring. Para isso era necessário seguir os seguintes requisitos.

Tecnologias

Java, Spring, Spring Data JPA, Spring Security, Spring Fox (OpenAPI), Lombok, Mapstruct, Flyway e Mysql.

Requisitos

  • Criar os domínios da API com base no modelo UML.
  • Utilizar os contratos para os métodos POST.
  • Usar validações
  • Tratar exceções.
  • Aplicar segurança na API com Oauth 2.
  • Documentar a API utilizando OpenApi (Swagger2).
  • Popular a base com dados para teste.

Modelo UML

UML - Product API

Contrato

  • Cliente
{
    "nome": "Fulano",
    "email": "email@gmail.com",
    "senha": "123",
    "documento": "111.111.11-50"
}
  • Produto
{
    "nome": "Produto XYZ",
    "valor": 10.50,
    "promocao": true,
    "valorPromo": 9.50,
    "categoria": "eletronico",
    "imagem": "produto.jpg",
    "quantidade": 5,
    "fornecedor": {
      "id": 1
    }
}
  • Fornecedor
{
    "nome": "Produto XYZ",
    "cnpj": "XX.XXX.XXX/XXXX-XX"
}
  • Venda
{
    "fornecedor": {
      "id": 1
    },
    "cliente": {
      "id": 1
    },
    "produtos": [
      {
        "id": 1
      },
      {
        "id": 3
      }
    ],
    "dataCompra": "30/01/2020"
}

Modelo de Endpoints

Produtos ** Utilizar modelo em todos os endpoints.

Destaques da implementação do projeto

  • Tratamento de exceções.
  • Migração de dados com Flyway.
  • Os endpoints retornam páginas nas consultas.
  • Conversão de entradas e saídas em DTO's com Map Struct.
  • A documentação é feita em cima de interfaces, deixando os recursos (controllers), limpos.

About

Aplicação back-end desenvolvida como desafio individual no programa Starter da GFT.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages