The Tree Nexus API is a tool for searching products categorized into different categories and their subcategories. A Binary Tree Data Structure is used. The repository is for study purposes.
O Tree Nexus API é uma ferramenta ideal para e-commerces ou sistemas de inventário, onde produtos são organizados em categorias e subcategorias. A API permite busca por categorias, listagem de todos os produtos sob uma categoria principal e análises por profundidade ou profundidade de cada ramo.
A Árvore onde cada nó representa uma categoria com subcategorias como filhos. A árvore é a busca realizada pela API e os nós são categorias e seus nós-filhos são as subcategorias.
- Node.js com Express: Utilizada para criar APIs REST.
- Django com Django REST Framework (Python): Excelente para APIs robustas e permite manipulação fácil de estruturas como árvores.
- Spring Boot (Java): Alternativa de alta performance, com várias bibliotecas para manipulação de árvores.
- Mongoose (Node.js): Útil para criar árvores no MongoDB com modelagem de dados hierárquicos.
- Django MPTT: Biblioteca que facilita a criação de árvores em Django com o modelo MPTT (Modified Preorder Tree Traversal).
- GraphQL: Permite criar APIs com consultas mais específicas, interessante para explorar árvores de forma mais direta.
- MongoDB: Naturalmente orientado a documentos, facilita a criação de árvores de documentos com embutimento de dados.
- PostgreSQL: Suporta consultas hierárquicas avançadas, especialmente para estruturas em árvore com modelos CTE (Common Table Expressions).
- Neo4j: Ótima opção para árvores complexas e grafos em geral, permitindo consultas de relacionamentos.
Abaixo estão os requisitos funcionais e não funcionais da API.
- CRUD: A API deve permitir a criação, leitura, atualização e exclusão de nós na árvore.
- Navegação Hierárquica: Deve haver endpoints para navegar entre diferentes níveis da árvore.
- Busca por Ramificação: A API deve suportar buscas em subárvores específicas com filtragens.
- Filtragem e Ordenação: Deve haver parâmetros para filtrar e ordenar nós com base em atributos específicos.
- Desempenho: A resposta da API deve ser rápida, especialmente para operações de leitura de grandes árvores.
- Escalabilidade: O sistema deve suportar o aumento do número de nós sem perda significativa de desempenho.
- Segurança: Regras de autenticação para limitar quem pode criar, editar ou deletar nós.
- Confiabilidade: Garantia de que operações em nós (adição/remoção) não corrompam a árvore.
Abaixo estão as etapas da engenharia do software para o desenvolvimento da API.
- Diagramas de Classes: As Classes para representação dos nós são: id, parentId, name.
- Diagramas de Sequência: Para entender a ordem de execução das operações. Mostrar a sequência de operações para adicionar, remover e editar os nós na árvore.
- POST /node: Adiciona um novo nó.
- GET /node/:id: Retorna o nó com o ID especificado.
- PUT /node/:id: Atualiza o nó.
- DELETE /node/:id: Remove o nó.
- GET /tree/:id: Retorna a subárvore a partir do ID do nó especificado.
- Testes unitários para garantir que cada endpoint está funcionando corretamente. Verificando cada operação (adição, remoção, etc).
- Integração: Teste de Endpoints com a árvore completa.
- Desempenho: Teste de respostas com árvores de grande porte.
- Implementando a autenticação com tokens JWT.
- Limita acesso a certos endpoints com permissões específicas.
