https://github.com/miguelprogrammer/fastapi
Projeto opensource - Poc para testar micro-serviços utilizando framework web FastApi
https://github.com/miguelprogrammer/fastapi
Last synced: 8 months ago
JSON representation
Projeto opensource - Poc para testar micro-serviços utilizando framework web FastApi
- Host: GitHub
- URL: https://github.com/miguelprogrammer/fastapi
- Owner: MiguelProgrammer
- License: mit
- Created: 2025-06-26T02:45:31.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-06-26T03:11:42.000Z (11 months ago)
- Last Synced: 2025-06-26T04:18:53.649Z (11 months ago)
- Language: Python
- Size: 19.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FastApi | pythônico
## Micro-serviços com framework web FastApi
### A construção de micro-serviços deste framework comparada ao spring é realmente rápida, não apenas em termos de documentação com o Swagger, mas na simplicidade de se criar os serviços em si.
Com apenas alguns comandos para instalar libs como fastapi sqlalchemy asyncpg uvicorn psycopg2-binary guviconr, alguns imports e você já consegue criar seus serviços.
E já temos a documentação dos serviços criados rápidamente criados e.g;
### CODS

### REDOC

## Atualização de libs de sqlalchemy para SQLModel
Ela por si implementa a sqlalchemy, tem algumas correções para se fazer dependendo da versão, mas ela suporta todas as libs anteriores.
Seu uso é muito simples, não precisei utilizar schemas para mapear minhas entidas inboud ou outbound. Falando da injeção de depedência, o uso do banco de dados é bem explicito, praticamente sua instancia fica como parâmetro de sua rotina/api/escopo.
## Autenticação
JWT | Bearer | OAuth2PasswordBearer | jose - A construção de identificação e autorização foi bem simples sua construção e utilização, apenas injentando a dependência como parametro da rotina, ela por si só vai solicitar ao menos um usuário logado, extremamente rápido. Realizei também validações de alguns atributos com email a lib EmailStr.
Após a autenticação, o swagger exigiu autenticação para utilização de chamadas.

## [PEP 8](https://peps.python.org/pep-0008/)
As minhas primeiras impressões em relação ao spring é que o python é no minimo não verboso, o python é uma stack pra ser de certa forma objetiva e direta, não que o framework spring não seja, mas a rapidez com que configuramos, construímos e utilizamos os componentes é realmente incrivel.
A documentação sobre a elegibilidade, design e expressões que o guia de estilo pep 8 aborda é bem simples, ela aborda itens como espaçamentos, quantidade de caracteres por linha, quebra de linha, expressões, validações, palavras chaves, padrões como PascalCase, vale a pena dar uma olhada.
Neste projeto fiz o uso do pylint para analisar e seguir a PEP o mais próximo possível, o pylint é uma das libs existêntes que faz uma analise estática de seu código-fonte de acordo com a documentação PEP 8, é praticamente o sonar do python rs, mas foi bem massante adequear o que eu ja havia construído. É legal você inserir essas validações numa esteira ci/cd, em um deos steps, utilize a analise statica de código com libs como essa.