Skip to content

API em php, utilizando o padrão de projeto MVC e implementando a arquitetura REST

Notifications You must be signed in to change notification settings

RudeBoyOne/avaliacao-web2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistema de Gerenciamento de Produtos

Descrição do Projeto

Este projeto consiste em uma aplicação para gerenciamento de produtos, que permite cadastrar, atualizar, listar e excluir produtos, além de registrar as operações realizadas em uma tabela de logs. A aplicação utiliza um banco de dados SQLite para armazenamento de dados.

Funcionalidades

  • Gerenciamento de Produtos:

    • Criar, ler, atualizar e excluir produtos.
    • Validação de campos obrigatórios:
      • O nome do produto deve ter no mínimo 3 caracteres.
      • O preço deve ser um valor positivo.
      • O estoque deve ser um número inteiro maior ou igual a zero.
  • Registro de Logs:

    • Registro de operações CRUD em uma tabela de logs.
    • A tabela de logs contém informações sobre:
      • Tipo de operação (criação, atualização, exclusão).
      • Data e hora da operação.
      • ID do produto afetado.

Estrutura do Banco de Dados

Tabelas

  • Produto:

    • id: Identificador único do produto.
    • nome: Nome do produto.
    • descricao: Descrição do produto.
    • preco: Preço do produto.
    • estoque: Quantidade disponível em estoque.
    • userInsert: Usuário que inseriu o produto.
    • data_hora: Data e hora de inserção.
  • Log:

    • id: Identificador único do log.
    • acao: Tipo de operação realizada (criação, atualização, exclusão).
    • data_hora: Data e hora da operação.
    • produto_id: ID do produto afetado.
    • userInsert: Usuário que realizou a operação.

Endpoints da API

Produtos

  • GET /produtos

    • Retorna todos os produtos.
    • Resposta: Lista de produtos.
  • GET /produtos/{id}

    • Retorna o produto com o ID especificado.
    • Parâmetros: id (ID do produto).
    • Resposta: Detalhes do produto.
  • POST /produtos

    • Cria um novo produto.
    • Corpo da Requisição:
  • PUT /produtos/{id}

    • Atualiza os dados de um produto existente.
    • Parâmetros: id (ID do produto).
    • Corpo da Requisição
    • Resposta: Produto atualizado.
  • DELETE /produtos/{id}

    • Exclui o produto com o ID especificado.
    • Parâmetros: id (ID do produto).
    • Resposta: Produto excluído.

Logs

  • GET /logs
    • Retorna todos os logs das operações realizadas nos produtos.
    • Resposta: Lista de logs.

Testes

Todos os endpoints foram testados utilizando o Postman. Capturas de tela dos testes estão incluídas no documento de entrega.

Documentação

A documentação dos endpoints, incluindo exemplos de requisições e respostas, está disponível no Postman. Para mais informações sobre como usar a API, consulte a documentação fornecida.

Relatório Técnico

Um relatório técnico detalhado foi elaborado, explicando o processo de desenvolvimento da aplicação, a implementação dos logs e a validação dos campos. O relatório também destaca as principais dificuldades enfrentadas e as soluções adotadas.

Principais Desafios

Ao desenvolver o projeto, encontramos dificuldades ao estabelecer conexão com o banco de dados, o que nos levou a instalar um pacote complementar e criar uma classe específica para a conexão, incluindo o tratamento de exceções.

Além disso, tivemos problemas ao passar os dados para validação de campos. No entanto, separamos arquivos específicos para retornar as mensagens de validação, erro e default, o que tornou o processo mais simples e compreensível.

Em suma, o projeto em si não apresentou grandes dificuldades.

About

API em php, utilizando o padrão de projeto MVC e implementando a arquitetura REST

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published