Sistema simples em Python + FastAPI com interface HTML estática para gerenciar documentos de uma biblioteca.
- Python 3.13
- FastAPI + Uvicorn (backend REST)
- Pydantic (modelos)
- HTML + CSS + JavaScript vanilla (frontend)
- CORS Middleware habilitado para desenvolvimento
- Instale as dependências:
pip install -r requirements.txt- Inicie o servidor:
python main.py- O backend sobe em
http://localhost:8000. - A interface web é servida em
http://localhost:8000/. - Documentação Swagger em
http://localhost:8000/docs.
| Método | Rota | Descrição |
|---|---|---|
| GET | / |
Serve o arquivo index.html (interface web). |
| GET | /documents |
Lista documentos. Aceita filtros, paginação. |
| GET | /documents/count |
Retorna quantidade total de documentos. |
| GET | /documents/{id} |
Retorna documento pelo id. |
| POST | /documents |
Cria documento. |
| PUT | /documents/{id} |
Atualiza documento existente. |
| DELETE | /documents/{id} |
Exclui documento pelo id. |
Query params:
| Param | Tipo | Padrão | Descrição |
|---|---|---|---|
skip |
int |
0 |
Quantidade de registros a pular. |
limit |
int |
100 |
Máximo de registros a retornar. |
type |
str |
– | Filtra pelo tipo (Livro, Revista…). |
extension |
str |
– | Filtra pelo formato (pdf, epub…). |
Resposta 200 OK:
[
{
"id": 1,
"title": "Dom Casmurro",
"type": "Livro",
"extension": "pdf"
}
]Body (JSON):
{
"title": "Nome do documento",
"type": "Livro",
"extension": "pdf"
}Resposta 201 Created retorna o documento com id gerado.
Body (JSON – todos opcionais):
{
"title": "Novo título",
"type": "Revista",
"extension": "epub"
}Resposta 200 OK devolve documento atualizado.
Resposta 200 OK:
{"message": "Documento deletado com sucesso"}A página permite:
- Listar documentos em tabela.
- Adicionar documento via formulário.
- Editar (carrega dados no formulário e envia
PUT). - Deletar com confirmação.
- Filtrar por tipo e extensão.
- Exibe total de documentos (chama
/documents/count).
Use o console do navegador para ver logs de debug caso algo não funcione.
├── document_manager.py # Lógica e dados mockados
├── main.py # Configuração FastAPI + CORS + rotas
├── routes.py # Endpoints REST
├── models.py # Modelos Pydantic
├── index.html # Interface estática
├── requirements.txt
└── README.md # Este arquivo
- CORS liberado para todas as origens apenas em desenvolvimento.
- Em produção, restrinja
allow_originspara domínios confiáveis.
Projeto educacional – use livremente.