REST API construída com FastAPI e Python, com autenticação JWT, banco de dados PostgreSQL e documentação automática via Swagger.
- Python 3.11+
- FastAPI
- SQLAlchemy
- PostgreSQL
- Alembic (migrações)
- JWT (autenticação)
- Docker
api-rest-python/
├── app/
│ ├── models/ # Modelos do banco de dados
│ ├── routes/ # Routers da API
│ ├── schemas/ # Pydantic schemas
│ ├── services/ # Regras de negócio
│ ├── core/ # Configurações e segurança
│ ├── db/ # Conexão e sessão com o banco
│ └── main.py # Entrypoint da aplicação
├── alembic/ # Migrações de banco
├── tests/ # Testes unitários e de integração
├── .env
├── .env.example
├── requirements.txt
└── docker-compose.yml
- Python 3.11 ou superior
- PostgreSQL 15+
- Docker e Docker Compose (opcional, mas recomendado)
git clone https://github.com/Tuliospin/api-rest-python.git
cd api-rest-pythonpython -m venv .venv
source .venv/bin/activate # Linux/Mac
.venv\Scripts\activate # Windowspip install -r requirements.txtcp .env.example .envEdite o .env:
DATABASE_URL=postgresql://user:password@localhost:5432/apidb
SECRET_KEY=sua-chave-secreta-aqui
ACCESS_TOKEN_EXPIRE_MINUTES=30alembic upgrade headuvicorn app.main:app --reload --host 0.0.0.0 --port 8000API disponível em: http://localhost:8000
Documentação Swagger: http://localhost:8000/docs
docker compose up --build| Método | Rota | Descrição |
|---|---|---|
| POST | /auth/register | Cadastrar usuário |
| POST | /auth/login | Obter token JWT |
| GET | /users/me | Perfil do usuário autenticado |
| GET | /items | Listar todos os itens |
| POST | /items | Criar novo item |
| PUT | /items/{id} | Atualizar item |
| DELETE | /items/{id} | Remover item |
pytest tests/ -vMIT License © 2026 Túlio Silva