Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chaos4455/fastapi-tokenomics-restful-api
Projeto de implementçaão de uma api em python e fast api usando arquitetura DDD e autenticação com JWT e criptografia assimétrica.
https://github.com/chaos4455/fastapi-tokenomics-restful-api
Last synced: 7 days ago
JSON representation
Projeto de implementçaão de uma api em python e fast api usando arquitetura DDD e autenticação com JWT e criptografia assimétrica.
- Host: GitHub
- URL: https://github.com/chaos4455/fastapi-tokenomics-restful-api
- Owner: chaos4455
- Created: 2024-09-27T19:48:05.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2024-10-17T06:49:02.000Z (about 1 month ago)
- Last Synced: 2024-10-19T09:23:11.450Z (30 days ago)
- Language: Python
- Size: 3.72 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🚀 FastAPI-Real-State-Tokenomics-RESTful-API
## 📝 **Descrição do Projeto**
Este projeto foi criado para consolidar meus conhecimentos em **Python** e **FastAPI**, onde venho de um background de **Flask** desde 2018 e agora estou ampliando minha stack para incluir **FastAPI**. Escolhi FastAPI devido à sua performance superior, tipagem moderna com Pydantic, e compatibilidade com sistemas assíncronos, tornando-a ideal para **microserviços** de alta escala.
A API foi construída seguindo os princípios de **DDD (Domain-Driven Design)** e **SOLID**, com um foco forte em **DRY** (Don't Repeat Yourself) para garantir um código modular e sustentável.
### ⚡ Por que **FastAPI**?
- **Performance**: FastAPI é extremamente rápida, comparável a Node.js e Go.
- **Tipagem**: Com Pydantic, oferece validação e parsing automático de dados.
- **Assíncrono**: Perfeito para aplicações de grande escala e microserviços que requerem alta performance.
- **Documentação Automática**: Suporte nativo para Swagger e Redoc.Agora minha stack de desenvolvimento de APIs inclui:
- **Flask** e **FastAPI** no **Python**
- **Express** no **Node.js**---
## 🛠 **Tecnologias Utilizadas**
- **Linguagem**: Python 3.9+
- **Framework**: FastAPI
- **Princípios**: SOLID, DDD, DRY
- **Autenticação**: JWT (JSON Web Tokens)
- **Criptografia**: Assimétrica (RSA)
- **Banco de Dados**:
- **SQLAlchemy** (Rede e Blockchain)
- Bancos separados para dados tradicionais e tokenomics/blockchain.
- **Integração Blockchain**: Simulações de tokenomics.![Python](https://img.shields.io/badge/Python-3.9+-blue.svg)
![FastAPI](https://img.shields.io/badge/FastAPI-0.78.0-green.svg)
![SOLID](https://img.shields.io/badge/SOLID-Principles-yellow.svg)
![DDD](https://img.shields.io/badge/DDD-Domain--Driven--Design-orange.svg)
![JWT](https://img.shields.io/badge/JWT-Authentication-red.svg)
![Cryptography](https://img.shields.io/badge/Cryptography-Asymmetric%20Encryption-lightblue.svg)
![Blockchain](https://img.shields.io/badge/Blockchain-Network%20Integration-black.svg)> Projeto de implementação de uma API RESTful utilizando **FastAPI**, **Domain-Driven Design (DDD)** e **princípios SOLID** para uma aplicação conceito de tokenomics, integrando criptografia assimétrica e autenticação com **JWT**.
![temp_image](https://github.com/user-attachments/assets/a448764f-ba3b-4b60-b2ee-4ac168c6c2d1)
![diagram-export-27-09-2024-13_18_22](https://github.com/user-attachments/assets/b74df88a-3a1e-4cf8-b7f3-d70a52f7645d)
![diagram-export-27-09-2024-13_21_15](https://github.com/user-attachments/assets/e4138539-6023-4779-9490-533e05ca1389)
![diagram-export-27-09-2024-13_26_58](https://github.com/user-attachments/assets/5a85c211-2d0b-4915-a002-96281e318d21)
![mintty_lJu9FZTzqH](https://github.com/user-attachments/assets/b5cbcebe-0699-4786-9956-df7b016d1896)
![Code_NEoXX62zwV](https://github.com/user-attachments/assets/3c008ca0-e03c-4832-9160-5e147707e62b)
![powershell_HB5ozvK4vT](https://github.com/user-attachments/assets/045cfcc2-5da8-4d8e-96b1-7dcbcb8b5bb6)
![powershell_9I75J48D6W](https://github.com/user-attachments/assets/0d9ad692-7eb1-45d5-92fb-e2c650c4455f)---
## 📝 **Descrição do Projeto**
Este projeto foi criado para consolidar meus conhecimentos em **Python** e **FastAPI**, onde venho de um background de **Flask** desde 2018 e agora estou ampliando minha stack para incluir **FastAPI**. Escolhi FastAPI devido à sua performance superior, tipagem moderna com Pydantic, e compatibilidade com sistemas assíncronos, tornando-a ideal para **microserviços** de alta escala.
A API foi construída seguindo os princípios de **DDD (Domain-Driven Design)** e **SOLID**, com um foco forte em **DRY** (Don't Repeat Yourself) para garantir um código modular e sustentável.
![BigChainDB-for-Blockchain](https://github.com/user-attachments/assets/566c8fe7-6c22-4ce1-a458-e22c4151882e)
# 🚀 FastAPI-Tokenomics-RESTful-API
![Python](https://img.shields.io/badge/Python-3.9+-blue.svg)
![FastAPI](https://img.shields.io/badge/FastAPI-0.78.0-green.svg)
![SOLID](https://img.shields.io/badge/SOLID-Principles-yellow.svg)
![DDD](https://img.shields.io/badge/DDD-Domain--Driven--Design-orange.svg)
![JWT](https://img.shields.io/badge/JWT-Authentication-red.svg)
![Cryptography](https://img.shields.io/badge/Cryptography-Asymmetric%20Encryption-lightblue.svg)
![Blockchain](https://img.shields.io/badge/Blockchain-Network%20Integration-black.svg)> Projeto de implementação de uma API RESTful utilizando **FastAPI**, **Domain-Driven Design (DDD)** e **princípios SOLID** para uma aplicação conceito de tokenomics, integrando criptografia assimétrica e autenticação com **JWT**.
---
![chrome_QUixJCpaK1](https://github.com/user-attachments/assets/8fb11954-52bd-49c8-b733-8d09a3516a85)
![_193fd117-6bd2-44b3-a8f4-19fca189d85d](https://github.com/user-attachments/assets/8c1fa6cf-fdae-4389-9c0a-aaf60bae8df3)
![_f0cebd79-d757-4034-b44b-d0dcae68ce21](https://github.com/user-attachments/assets/d3477455-f48d-4fb5-8a5c-0a2601ffcdb8)---
## 🌳 **Arquitetura do Projeto**
O projeto foi desenvolvido com **Domain-Driven Design (DDD)** e é totalmente modularizado. As camadas seguem uma divisão clara entre:
1. **Camada de Domínio**: Definições das entidades, regras de negócio e agregados.
2. **Camada de Aplicação**: Serviços e handlers que coordenam as requisições.
3. **Camada de Infraestrutura**: Integração com bancos de dados e outros serviços externos.---
## 🧩 **Princípios SOLID Aplicados**
- **Single Responsibility Principle**: Cada módulo da aplicação possui uma única responsabilidade, facilitando manutenção e escalabilidade.
- **Open/Closed Principle**: A aplicação está aberta para extensão, mas fechada para modificação direta, garantindo que novas features sejam adicionadas sem comprometer o funcionamento existente.
- **Liskov Substitution Principle**: Todas as classes podem ser substituídas por suas subclasses sem afetar o comportamento do sistema.
- **Interface Segregation Principle**: Interfaces pequenas e específicas são criadas para cada caso de uso.
- **Dependency Inversion Principle**: A camada de aplicação depende de abstrações (interfaces) em vez de implementações concretas.---
## 🔑 **Autenticação e Segurança**
O projeto utiliza **JWT** para autenticação de usuários, com suporte para tokens de acesso e refresh. A segurança é complementada com:
- **Criptografia Assimétrica (RSA)**: Utilizada para proteger tokens e dados sensíveis.
---## 🏦 **Banco de Dados e Blockchain**
A arquitetura do banco de dados é dividida em dois segmentos:
1. **Banco Relacional (SQLAlchemy)**: Usado para gerenciar dados da rede.
2. **Blockchain Tokenomics**: Simulações de transferência de tokens e contratos inteligentes, permitindo verificar integrações e visualizações futuras.Print da arquitetura do banco de dados:
---
## 🧪 **Testes e Cobertura**
O projeto foi desenvolvido com foco em testes unitários e integração. A cobertura inclui:
- Testes de autenticação JWT.
- Verificação de criptografia.
- Validação de contratos de blockchain.---
## 📂 **Estrutura de Pastas**
### ⚡ Por que **FastAPI**?
- **Performance**: FastAPI é extremamente rápida, comparável a Node.js e Go.
- **Tipagem**: Com Pydantic, oferece validação e parsing automático de dados.
- **Assíncrono**: Perfeito para aplicações de grande escala e microserviços que requerem alta performance.
- **Documentação Automática**: Suporte nativo para Swagger e Redoc.Agora minha stack de desenvolvimento de APIs inclui:
- **Flask** e **FastAPI** no **Python**
- **Express** no **Node.js**---
## 🛠 **Tecnologias Utilizadas**
- **Linguagem**: Python 3.9+
- **Framework**: FastAPI
- **Princípios**: SOLID, DDD, DRY
- **Autenticação**: JWT (JSON Web Tokens)
- **Criptografia**: Assimétrica (RSA)
- **Banco de Dados**:
- **SQLAlchemy** (Rede e Blockchain)
- Bancos separados para dados tradicionais e tokenomics/blockchain.
- **Integração Blockchain**: Simulações de tokenomics.---
## 🌳 **Arquitetura do Projeto**
O projeto foi desenvolvido com **Domain-Driven Design (DDD)** e é totalmente modularizado. As camadas seguem uma divisão clara entre:
1. **Camada de Domínio**: Definições das entidades, regras de negócio e agregados.
2. **Camada de Aplicação**: Serviços e handlers que coordenam as requisições.
3. **Camada de Infraestrutura**: Integração com bancos de dados e outros serviços externos.---
## 🧩 **Princípios SOLID Aplicados**
- **Single Responsibility Principle**: Cada módulo da aplicação possui uma única responsabilidade, facilitando manutenção e escalabilidade.
- **Open/Closed Principle**: A aplicação está aberta para extensão, mas fechada para modificação direta, garantindo que novas features sejam adicionadas sem comprometer o funcionamento existente.
- **Liskov Substitution Principle**: Todas as classes podem ser substituídas por suas subclasses sem afetar o comportamento do sistema.
- **Interface Segregation Principle**: Interfaces pequenas e específicas são criadas para cada caso de uso.
- **Dependency Inversion Principle**: A camada de aplicação depende de abstrações (interfaces) em vez de implementações concretas.---
## 🔑 **Autenticação e Segurança**
O projeto utiliza **JWT** para autenticação de usuários, com suporte para tokens de acesso e refresh. A segurança é complementada com:
- **Criptografia Assimétrica (RSA)**: Utilizada para proteger tokens e dados sensíveis.
---## 🏦 **Banco de Dados e Blockchain**
A arquitetura do banco de dados é dividida em dois segmentos:
1. **Banco Relacional (SQLAlchemy)**: Usado para gerenciar dados da rede.
2. **Blockchain Tokenomics**: Simulações de transferência de tokens e contratos inteligentes, permitindo verificar integrações e visualizações futuras.Print da arquitetura do banco de dados:
---
## 🧪 **Testes e Cobertura**
O projeto foi desenvolvido com foco em testes unitários e integração. A cobertura inclui:
- Testes de autenticação JWT.
- Verificação de criptografia.
- Validação de contratos de blockchain.---
## 📂 **Estrutura de Pastas**