{"id":13405568,"url":"https://github.com/dunossauro/fastapi-do-zero","last_synced_at":"2025-05-15T02:04:36.870Z","repository":{"id":182047096,"uuid":"665865348","full_name":"dunossauro/fastapi-do-zero","owner":"dunossauro","description":"Curso básico de FastAPI","archived":false,"fork":false,"pushed_at":"2025-04-03T17:43:46.000Z","size":46111,"stargazers_count":768,"open_issues_count":7,"forks_count":82,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-04-06T21:06:14.092Z","etag":null,"topics":["alembic","brasil","brazil","fastapi","pydantic","python","sqlalchemy"],"latest_commit_sha":null,"homepage":"https://fastapidozero.dunossauro.com/","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/dunossauro.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2023-07-13T07:13:45.000Z","updated_at":"2025-04-03T17:40:02.000Z","dependencies_parsed_at":"2023-10-11T09:03:00.540Z","dependency_job_id":"7b7b63f7-d8d7-4ff7-96f3-609c66380ece","html_url":"https://github.com/dunossauro/fastapi-do-zero","commit_stats":{"total_commits":1024,"total_committers":35,"mean_commits":"29.257142857142856","dds":0.0927734375,"last_synced_commit":"582b05357f4371225aadc3f24bb6e717cce24bac"},"previous_names":["dunossauro/fastapi-do-zero"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunossauro%2Ffastapi-do-zero","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunossauro%2Ffastapi-do-zero/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunossauro%2Ffastapi-do-zero/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunossauro%2Ffastapi-do-zero/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dunossauro","download_url":"https://codeload.github.com/dunossauro/fastapi-do-zero/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248799791,"owners_count":21163398,"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","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":["alembic","brasil","brazil","fastapi","pydantic","python","sqlalchemy"],"created_at":"2024-07-30T19:02:05.605Z","updated_at":"2025-05-15T02:04:36.863Z","avatar_url":"https://github.com/dunossauro.png","language":"Python","readme":"# FastAPI do Zero\n\nO site gerado por esse repositório está disponível em: [fastapidozero.dunossauro.com](https://fastapidozero.dunossauro.com).\n\nO objetivo desse projeto é ensinar FastAPI para pessoas que queiram ter o seu primeiro contato com o mesmo. A ideia padrão é construir uma aplicação pequena e simples, mas executando todos os passos até o deploy.\n\nAs Aulas estão dividas em:\n\n0. [Apresentação do curso](https://fastapidozero.dunossauro.com/)\n1. [Configurando o Ambiente de Desenvolvimento](https://fastapidozero.dunossauro.com/01/)\n2. [Introdução ao desenvolvimento WEB](https://fastapidozero.dunossauro.com/02/)\n3. [Estruturando seu Projeto e Criando Rotas CRUD](https://fastapidozero.dunossauro.com/03/)\n4. [Configurando Banco de Dados e Gerenciando Migrações com Alembic](https://fastapidozero.dunossauro.com/04/)\n5. [Integrando Banco de Dados a API](https://fastapidozero.dunossauro.com/05/)\n6. [Autenticação e Autorização](https://fastapidozero.dunossauro.com/06/)\n7. [Refatorando a Estrutura do Projeto](https://fastapidozero.dunossauro.com/07/)\n8. [Tornando o projeto assíncrono](https://fastapidozero.dunossauro.com/08/)\n9. [Tornando o sistema de autenticação robusto](https://fastapidozero.dunossauro.com/09/)\n10. [Criando Rotas CRUD para Tarefas](https://fastapidozero.dunossauro.com/10/)\n11. [Dockerizando a aplicação](https://fastapidozero.dunossauro.com/11/)\n12. [Automatizando os testes com integração contínua](https://fastapidozero.dunossauro.com/12/)\n13. [Fazendo o deploy no fly.io](https://fastapidozero.dunossauro.com/13/)\n14. [Despedida](https://fastapidozero.dunossauro.com/14/)\n\n---\n\n### Caso precise reconstruir o ambiente para as páginas\n\n#### Sobre o ambiente\n\nTodo esse projeto é gerenciado pelo Poetry, a versão usada durante o momento da escrita é `2.1.3`:\n\n```bash\npipx install poetry==2.1.2\npipx inject poetry poetry-plugin-shell\n```\n\nA versão usada do python é a versão 3.13.2:\n\n```\npoetry python install 3.13\n```\n\npara configurar todo o ambiente basta executar:\n\n```bash\npoetry install\n```\n\npara ativar o ambiente virtual:\n\n```bash\npoetry shell\n```\n\n#### Sobre os comandos\n\nOs comandos para executar funções como deploy, servidor local, geração de slides, etc. Estão todas sendo feitas pelo `taskipy`:\n\n```bash\ntask --list\nserve       Executa o servidor local do mkdocs\nmserve      Executa o servidor local do mkdocs via mike\ndeploy      Faz o deploy da página em produção usando mike\nslides      Gera os slides em pdf\nslides_html Gera os slides em html (formato usado nas aulas)\nruff        ruff check\n```\n\nPara executar qualquer comando, basta usar: `task \u003ccomando\u003e`, como por exemplo `task serve`.\n\n#### Sobre os slides\n\nTodos os slides foram feitos usando marp. Versão do marp usada: `4.0.3`. O tema `rose-pine`, com algumas modificações, está dentro da pasta dos slides brutos.\n\n\n## Passos para gerar nova release\n\n\u003e TODO: Deixar isso melhor documentado\n\n### 1. Fazer o build dos changelogs\n\n`towncrier build --version \u003cversao\u003e`, algo como:\n\n```bash\ntowncrier build --version 4.0.2\n```\n\n### 2. Atualizar o pyproject\n\nA versão deve ser atualizada no campo `project.version`:\n\n```toml\n[project]\nname = \"fastapi-do-zero\"\nversion = \"4.0.2\"\n```\n\n### 3. Atualizar tag `current_version` no mkdocs\n\n```yaml\n# ... mkdocs.yml\nextra:\n  current_tag: v4.0.2 # para tag\n```\n\n### 4. Fazer o commit\n\n```bash\ngit add .\ngit commit -m \"Upadate para v4.0.2\"\n```\n\n### 5. Criar a tag do git\n\n```bash\ngit tag v4.0.2\ngit push --tags\n```\n\n### 6. Criar versão do mike\n\n\u003e TODO: Isso só vale para majors\n\n### 7. Fazer o deploy atualizado\n\n```bash\nmike deploy --push 4.0  # atualizar a versão\n```\n\n#### Caso a documentação antiga precise ser atualizada (\u003e 4.0)\n\nO `mike` foi introduzido após a v4.0. Você precisa aplicar o diff abaixo, caso precise atualizar algo:\n\n\u003cdetails\u003e\n\n\u003csummary\u003e Diff que precisa ser aplicado antes!\u003c/summary\u003e\n\n```diff\ndiff --git a/mkdocs.yml b/mkdocs.yml\nindex 38c5b9f..7ed5c54 100644\n--- a/mkdocs.yml\n+++ b/mkdocs.yml\n@@ -67,14 +67,6 @@ plugins:\n       show_line_count: true\n   - git-revision-date-localized\n   - social\n-  - with-pdf:\n-      author: Eduardo Mendes (@dunossauro)\n-      cover_title: FastAPI do zero\n-      cover_subtitle: Uma introdução prática!\n-      copyright: CC BY-NC-SA\n-      toc_level: 6\n-      enabled_if_env: ENABLE_PDF_EXPORT\n-      toc_title: Índice\n   - exclude:\n       glob:\n         - \"wip.md\"\n@@ -115,6 +107,8 @@ extra:\n       link: https://dunossauro.com\n     - icon: simple/codeberg\n       link: https://codeberg.org/dunossauro\n+  version:\n+    provider: mike\n \n hooks:\n   - hooks/quiz_hook.py\n```\n\n\u003c/details\u003e\n\nExemplo do comando do mike:\n\n```bash\nmike deploy --push 4.0 --allow-empty\n# onde 4.0 é a versão da tag da documentação\n```\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdunossauro%2Ffastapi-do-zero","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdunossauro%2Ffastapi-do-zero","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdunossauro%2Ffastapi-do-zero/lists"}