Skip to content

Latest commit

 

History

History
126 lines (98 loc) · 2.9 KB

README.md

File metadata and controls

126 lines (98 loc) · 2.9 KB

API de Recomendação de Produtos

Este projeto é uma API criada com FastAPI para recomendação de produtos baseada no histórico de compras de usuários e preferências como categorias e tags.

Funcionalidades

  • Criação de usuários: Cadastro de novos usuários.
  • Cadastro de produtos: Cadastro de produtos com nome, categoria e tags.
  • Histórico de compras: Adicionar produtos ao histórico de compras de um usuário.
  • Recomendações de produtos: Recomendação de produtos com base no histórico de compras e preferências do usuário.

Tecnologias Utilizadas

  • Python 3.9+
  • FastAPI
  • Pydantic
  • Uvicorn (para rodar o servidor)
  • Pytest (para testes automatizados)

Instalação e Configuração

  1. Clone o repositório:

    git clone https://github.com/uranolais/boas-praticas-python-curso01.git
    cd recomendacao-produtos
  2. Crie um ambiente virtual:

    python -m venv venv
  3. Ative o ambiente virtual:

    • No Windows:
      venv\Scripts\activate
    • No macOS/Linux:
      source venv/bin/activate
  4. Instale as dependências:

    pip install -r requirements.txt
  5. Execute o servidor:

    uvicorn app.main:app --reload
  6. Acesse a documentação interativa da API: Abra o navegador e acesse http://127.0.0.1:8000/docs para visualizar e testar as rotas da API.

Estrutura do Projeto

.
├── app
│   ├── main.py              # Arquivo principal que inicia o FastAPI
│   ├── models               # Modelos Pydantic usados pela API
│   │   ├── models_produtos.py
│   │   └── models_usuarios.py
│   ├── routers              # Arquivos contendo os roteadores de usuários e produtos
│   │   ├── routers_produtos.py
│   │   └── routers_usuarios.py
├── tests
│   └── test_api.py          # Testes para a API
├── venv                     # Ambiente virtual
├── README.md                # Instruções sobre o projeto
└── requirements.txt         # Dependências do projeto

Exemplos de Uso

Criar um usuário:

  • POST /usuarios/
    {
      "nome": "Usuário Teste"
    }

Criar um produto:

  • POST /produtos/
    {
      "nome": "Produto Teste",
      "categoria": "Eletrônicos",
      "tags": ["tecnologia", "novo"]
    }

Adicionar histórico de compras:

  • POST /historico_compras/{usuario_id}
    {
      "produtos_ids": [1, 2]
    }

Recomendação de produtos:

  • POST /recomendacoes/{usuario_id}
    {
      "categorias": ["Eletrônicos"],
      "tags": ["novo"]
    }

Rodar os Testes

Para rodar os testes unitários:

pytest tests/

Contribuições

Contribuições são bem-vindas! Sinta-se à vontade para abrir um pull request ou relatar um problema.