{"id":30277177,"url":"https://github.com/rubendvb/fastapi-zero","last_synced_at":"2026-05-18T09:08:36.185Z","repository":{"id":297027411,"uuid":"995423292","full_name":"Rubendvb/fastapi-zero","owner":"Rubendvb","description":"Uma API REST simples construída com FastAPI para gerenciamento de usuários","archived":false,"fork":false,"pushed_at":"2025-06-23T00:31:47.000Z","size":55,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-16T11:23:15.686Z","etag":null,"topics":["api-rest","fastapi","poetry","pydantic","pytest","ruff","taskipy"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Rubendvb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-03T13:08:28.000Z","updated_at":"2025-06-23T00:31:50.000Z","dependencies_parsed_at":"2025-06-03T23:24:24.517Z","dependency_job_id":"95a9f5a6-189e-4191-a82a-17a6ab4bc90e","html_url":"https://github.com/Rubendvb/fastapi-zero","commit_stats":null,"previous_names":["rubendvb/fastapi-zero"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Rubendvb/fastapi-zero","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rubendvb%2Ffastapi-zero","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rubendvb%2Ffastapi-zero/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rubendvb%2Ffastapi-zero/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rubendvb%2Ffastapi-zero/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rubendvb","download_url":"https://codeload.github.com/Rubendvb/fastapi-zero/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rubendvb%2Ffastapi-zero/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274732449,"owners_count":25339345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-11T02:00:13.660Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-rest","fastapi","poetry","pydantic","pytest","ruff","taskipy"],"created_at":"2025-08-16T11:14:14.238Z","updated_at":"2026-05-18T09:08:36.156Z","avatar_url":"https://github.com/Rubendvb.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FastAPI Zero\n\nUma API REST simples construída com FastAPI para gerenciamento de usuários.\n\n## 📋 Descrição\n\nEste projeto é uma implementação básica de uma API REST usando FastAPI que permite:\n\n- Criar usuários\n- Listar todos os usuários\n- Atualizar usuários existentes\n- Validação de dados com Pydantic\n- Testes automatizados com pytest\n\n## 🚀 Tecnologias\n\n- **FastAPI** - Framework web moderno para APIs\n- **Pydantic** - Validação de dados e serialização\n- **Poetry** - Gerenciamento de dependências\n- **pytest** - Framework de testes\n- **Ruff** - Linter e formatação de código\n\n## 📦 Instalação\n\n### Pré-requisitos\n\n- Python 3.12 ou superior\n- Poetry\n\n### Passos para instalação\n\n1. Clone o repositório:\n\n```bash\ngit clone \u003curl-do-repositorio\u003e\ncd fastapi_zero\n```\n\n2. Instale as dependências:\n\n```bash\npoetry install\n```\n\n3. Ative o ambiente virtual:\n\n```bash\npoetry shell\n```\n\n## 🏃‍♂️ Como executar\n\n### Desenvolvimento\n\nPara executar o servidor de desenvolvimento:\n\n```bash\npoetry run task run\n```\n\nOu diretamente:\n\n```bash\nfastapi dev fastapi_zero/app.py\n```\n\nO servidor estará disponível em: `http://localhost:8000`\n\n### Documentação da API\n\nApós iniciar o servidor, você pode acessar:\n\n- **Swagger UI**: `http://localhost:8000/docs`\n- **ReDoc**: `http://localhost:8000/redoc`\n\n## 📚 Endpoints da API\n\n### GET `/`\n\nRetorna uma mensagem de boas-vindas.\n\n**Resposta:**\n\n```json\n{\n  \"message\": \"Olá mundo!\"\n}\n```\n\n### POST `/users/`\n\nCria um novo usuário.\n\n**Corpo da requisição:**\n\n```json\n{\n  \"username\": \"alice\",\n  \"email\": \"alice@example.com\",\n  \"password\": \"secret\"\n}\n```\n\n**Resposta:**\n\n```json\n{\n  \"id\": 1,\n  \"username\": \"alice\",\n  \"email\": \"alice@example.com\"\n}\n```\n\n### GET `/users/`\n\nLista todos os usuários cadastrados.\n\n**Resposta:**\n\n```json\n{\n  \"users\": [\n    {\n      \"id\": 1,\n      \"username\": \"alice\",\n      \"email\": \"alice@example.com\"\n    }\n  ]\n}\n```\n\n### PUT `/users/{user_id}`\n\nAtualiza um usuário existente.\n\n**Corpo da requisição:**\n\n```json\n{\n  \"username\": \"bob\",\n  \"email\": \"bob@example.com\",\n  \"password\": \"secret123\"\n}\n```\n\n**Resposta:**\n\n```json\n{\n  \"id\": 1,\n  \"username\": \"bob\",\n  \"email\": \"bob@example.com\"\n}\n```\n\n## 🧪 Testes\n\n### Executar todos os testes\n\n```bash\npoetry run task test\n```\n\n### Executar apenas os testes\n\n```bash\npytest -s -x --cov=fastapi_zero -vv\n```\n\n### Gerar relatório de cobertura\n\n```bash\ncoverage html\n```\n\n## 🔧 Comandos disponíveis\n\nO projeto utiliza `taskipy` para gerenciar comandos. Aqui estão os comandos disponíveis:\n\n### Opção 1: Com poetry run (padrão)\n\n```bash\npoetry run task lint\npoetry run task pre_format\npoetry run task format\npoetry run task run\npoetry run task pre_test\npoetry run task test\npoetry run task post_test\n```\n\n### Opção 2: Com poetry shell (recomendado)\n\n```bash\npoetry shell  # Ativa o ambiente virtual\ntask lint\ntask pre_format\ntask format\ntask run\ntask pre_test\ntask test\ntask post_test\n```\n\n### Comandos disponíveis\n\n- `task lint` - Executa o linter (Ruff)\n- `task pre_format` - Corrige problemas de linting automaticamente\n- `task format` - Formata o código\n- `task run` - Executa o servidor de desenvolvimento\n- `task pre_test` - Executa o linter antes dos testes\n- `task test` - Executa os testes com cobertura\n- `task post_test` - Gera relatório HTML de cobertura\n\n## 📁 Estrutura do projeto\n\n```bash\nfastapi_zero/\n├── fastapi_zero/\n│   ├── __init__.py\n│   ├── app.py          # Aplicação principal\n│   └── schemas.py      # Modelos Pydantic\n├── tests/\n│   ├── __init__.py\n│   ├── conftest.py     # Configuração dos testes\n│   └── test_app.py     # Testes da aplicação\n├── pyproject.toml      # Configuração do Poetry\n└── README.md\n```\n\n## 👨‍💻 Desenvolvimento\n\n### Adicionando novas dependências\n\n```bash\npoetry add nome-do-pacote\n```\n\n### Adicionando dependências de desenvolvimento\n\n```bash\npoetry add --group dev nome-do-pacote\n```\n\n### Verificando qualidade do código\n\n```bash\npoetry run task lint\npoetry run task format\n```\n\n## 📝 Licença\n\nEste projeto está sob a licença MIT.\n\n## 👤 Autor\n\n**Rubendvb** - []()\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubendvb%2Ffastapi-zero","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frubendvb%2Ffastapi-zero","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubendvb%2Ffastapi-zero/lists"}