We may earn an affiliate commission when you visit our partners.
Diogo Duarte

ResumoO foco deste curso é ir de uma introdução ao FastAPI até a construção de um sistema completo utilizando várias ferramentas que da stack de desenvolvimento de Python no banckend, como docker, docker-compose, postgres, entre outros.

O objetivo é trazer exemplos do mundo real no que diz respeito ao desenvolvimento banckend com Python. Vamos trazer exemplos práticos de como utilizar FastAPI/Python para resolver problemas do dia a dia de uma empresa de tecnologia.

O curso é dividido em 7 seções, onde cada uma tem o seguinte propósito:

1. Introdução

Read more

ResumoO foco deste curso é ir de uma introdução ao FastAPI até a construção de um sistema completo utilizando várias ferramentas que da stack de desenvolvimento de Python no banckend, como docker, docker-compose, postgres, entre outros.

O objetivo é trazer exemplos do mundo real no que diz respeito ao desenvolvimento banckend com Python. Vamos trazer exemplos práticos de como utilizar FastAPI/Python para resolver problemas do dia a dia de uma empresa de tecnologia.

O curso é dividido em 7 seções, onde cada uma tem o seguinte propósito:

1. Introdução

Na introdução vamos entender o que é FastAPI e por que ele tem crescido tanto nas trends no que diz respeito a desenvolvimento backend com Python. Também nessa seção vai ser apresentada a estrutura do curso.

2. Type hint e Pydantic

Nessa seção vamos entender os conceitos de type hint e annotations em Python, bem como vai ser apresentada a lib Pydantic, essencial para o desenvolvimento com FastAPI.

3. Setup

Na seção de setup, vamos configurar todos os recursos necessários para o desenvolvimento dos projetos como Docker, docker-compose, Pyenv, Poetry, WSL e Insomnia.

4. Programação assíncrona

Nessa seção vamos entender em detalhes os conceitos de programação síncrona e assícrona bem como compara-las. Vamos aprender como utilizar a sintaxe async/await o asyncio, com run e gather. Partindo de um exemplo bem didático até a implementação prática, vamos ter no final da seção total noção de como funciona programação assíncrona em Python e o quão performático isso pode ser.

5. Projeto 1

Os dois principais objetivos do projeto 1 são:

- Dar os primeiros passos utilizando todos os principais recursos do FastAPI com parametros de query, path e body bem como documentação e criação de rotas assíncronas;

- Ver um exemplo do mundo real de como a programação assíncrona pode ser muito poderosa no dia-a-dia.

6. Projeto 2

O objetivo da seção é criar um projeto completo com FastAPI, com tudo que um projeto de backend tem direito. Utilizando Docker, docker-compose, Postgres, SQLALchemy, Migrations com Alembic e Pytest. O projeto é desenvolvido utilizando a metodologia TDD (Test Driven Development).

7. Autenticação e Segurança

Nessa etapa, vamos adicionar autenticação no nosso Projeto 2 com as features de user register, user login e verificação de token nas rotas necessárias. Para isso vamos utilizar alguns recurso do FastAPI bem como outros recurso de segurança como a bilioteca passlib e jwt.

7. Paginação

Nessa etapa, aprendemos como utilizar a lib fastapi_pagination para paginar nossas listagens em FastAPI.

Enroll now

What's inside

Learning objectives

  • Tdd (test driven development)
  • Async/await em detalhes
  • Docker e dockerização de aplicação
  • Utilizar path, query e body parameter
  • Segurança e autenticação em fastapi
  • Trabalhar com validações avançadas
  • Testes unitários com pytest
  • Trabalhar com pydantic
  • Trabalhar com postgresql
  • Fazer crud com sqlalchemy
  • Migrations com alembic
  • Integração com api externa

Syllabus

Entender o que é o FastAPI e a estrutura do curso.

Nesta aula vamos entender por que o utilizar FastAPI e por que ele vem se tornando a tendência entre as empresas de tecnologia.

Read more

Nesta aula vamos ver o que vamos aprender durante o curso.

Nesta seção vamos configurar o setup de desenvolvimento, instalando e configurando as ferramentas necessárias para o curso.

Nesta aula vamos instalar e configurar o WSL para usuários de Windows.

Nesta aula vamos instalar e configurar o Pyenv. É uma etapa opcional, mas você vai precisar ter o Python na versão 3.11 rodando na sua máquina.

Nesta aula vamos instalar e configurar o Poetry

Nesta aula vamos instalar e configurar o Docker e docker-compose

Nesta aula vamos instalar e configurar o VS Code.

Nesta aula vamos instalar o Insomnia.

Nesta seção vamos ter uma breve introdução ao Type hint e ao Pydantic

Nesta aula vamos configurar um projeto Poetry para fazer nossas práticas com type hint e pydantic.

Nesta aula vamos entender os conceitos de type hint e annotations em Python.

Nesta aula vamos entender o que é a lib Pydantic.

Nesta seção vamos entender os conceitos de código síncrono e assíncrono , bem como aprender a sintaxe de async/await e fazer análises de performance.

Com um exemplo didático vamos dar os primeiros passos para entender os conceitos de sync e async.

Nesta aula vamos aprender utilizar a sintaxe do asycn/await em Python, bem como entender o importante conceito de eventloops e coroutines.

Implementação do exemplo Bob Esponja e análise de PERFORMANCE
Nesta seção vamos desenvolver nosso primeiro projeto em FastAPI

Nesta aula vamos entender o que vai ser desenvolvido no Projeto 1

Nesta aula vamos dar os primeiros passos com FastAPI

Nesta aula vamos aprender usar APIRouter.

Path parameter
Query parameter

Vamos nesta aula apresentar a API externa que será usada como recurso no projeto.

Versão síncrona do converter
Rota síncrona do converter
Versão assíncrona do converter
Rota assíncrona do converter
Teste de comparação de performance
Validação de path parameter
Validação de query parameter
Teste das validações e documentação
Body parameter
Output com Pydantic
Overview do Projeto
Neste projeto vamos desenvolver aplicação utilizando TDD, Docker, PostgreSQL, SQLAlchemy e Alembic.
Apresentação do Projeto
Introdução ao TDD
Estrutura do projeto
Entendendo Docker como desenvolvedor
Dockerização da aplicação
Subindo PostgreSQL com docker-compose
Link para aula extra de docker
Configuração do banco de dados com SQLAlchemy
Criando model Category
Migrations com Alembic
Criando shema Category
Caso de uso - add categoria
Rota - add categoria
Caso de uso - listar categoria
Rota - listar categoria
Caso de uso - deletar categoria
Rota - deletar categoria
Criando model Product
Criando schema Product
Caso de uso - add produto
Corrigindo erro nos testes
Rota - add produto
Caso de uso - atualizar produto
Rota - atualizar produto
Caso de uso - deletar produto
Rota - deletar produto
Caso de uso - listar produtos
Rota - listar produtos
Caso de uso - buscar produtos por nome ou slug
Rota - buscar produtos por nome ou slug
Overview da documentação e melhorias
Configurando banco apenas para testes
Tests no insomnia
Nesta seção vamos aprender fazer autenticação no FastAPI utilizando JWT
Criando Model User
Criando schema User
Caso de uso - cadastrar usuário
Rota - cadastrar usuário
Criando schema TokenData
Caso de uso - login
Rota - login
Caso de uso - verificar token
Rotas - verificação de token nas rotas
Ajustando testes
Testes na doc e insomnia
Nesta seção vamos aprender como fazer paginação utilizando fastapi_pagination
Introdução a paginação com fastapi_pagination
Paginação default
Paginação com limit offset
Paginação com SQLAlchemy
Paginação Isolada das rotas
Atualizando caso de uso - listar categorias
Atualizando rota - listar categorias
Atualizando caso de uso - listar produtos
Atualizando rota - listar produtos
Tirar dúvidas geradas durante o curso
Paginação customizada
Docker - Tirando dúvidas

Save this course

Save FastAPI Avançado 2023 | 2 Projetos | TDD | PostgreSQL to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in FastAPI Avançado 2023 | 2 Projetos | TDD | PostgreSQL with these activities:
Revisar Programação Assíncrona em Python
Refresque seus conhecimentos sobre programação assíncrona em Python para entender melhor os conceitos e a sintaxe `async/await` usados no curso.
Browse courses on asyncio
Show steps
  • Leia a documentação oficial do `asyncio` do Python.
  • Revise exemplos de código assíncrono.
  • Experimente com pequenos scripts assíncronos.
Revisar 'Python Fluente'
Leia este livro para aprofundar seus conhecimentos em Python e entender melhor os conceitos usados no curso.
View Python fluente on Amazon
Show steps
  • Leia os capítulos sobre concorrência e programação assíncrona.
  • Explore os exemplos de código e experimente com eles.
Criar um pequeno CRUD com FastAPI (simples)
Comece um projeto simples de CRUD (Create, Read, Update, Delete) usando FastAPI para praticar os conceitos básicos e se familiarizar com a estrutura do framework.
Show steps
  • Configure um ambiente de desenvolvimento FastAPI.
  • Defina os modelos de dados usando Pydantic.
  • Crie as rotas para as operações CRUD.
  • Teste as rotas usando Insomnia ou Postman.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Praticar exercícios de TDD com Pytest
Realize exercícios práticos de Test Driven Development (TDD) usando Pytest para reforçar a metodologia e aprender a escrever testes eficazes.
Show steps
  • Escolha um problema simples para resolver com TDD.
  • Escreva um teste que falhe antes de escrever o código.
  • Escreva o código mínimo para fazer o teste passar.
  • Refatore o código para melhorar a qualidade.
Escrever um artigo sobre Pydantic
Escreva um artigo detalhado sobre a biblioteca Pydantic, explicando seus recursos, benefícios e como usá-la em projetos FastAPI.
Show steps
  • Pesquise e compile informações sobre Pydantic.
  • Estruture o artigo com uma introdução, exemplos e conclusões.
  • Revise e edite o artigo para clareza e precisão.
Criar um script de migração Alembic
Crie um script de migração Alembic para adicionar uma nova coluna a uma tabela existente no banco de dados PostgreSQL, praticando o uso de migrações para gerenciar o esquema do banco de dados.
Show steps
  • Configure o Alembic para o seu projeto.
  • Gere um novo script de migração.
  • Edite o script para adicionar a nova coluna.
  • Execute a migração no banco de dados.
Contribuir para um projeto FastAPI no GitHub
Contribua para um projeto FastAPI de código aberto no GitHub, seja corrigindo bugs, adicionando novos recursos ou melhorando a documentação.
Show steps
  • Encontre um projeto FastAPI no GitHub.
  • Identifique um problema ou recurso para trabalhar.
  • Crie um fork do projeto e faça as alterações.
  • Envie um pull request com as suas alterações.

Career center

Learners who complete FastAPI Avançado 2023 | 2 Projetos | TDD | PostgreSQL will develop knowledge and skills that may be useful to these careers:

Reading list

We've selected one books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in FastAPI Avançado 2023 | 2 Projetos | TDD | PostgreSQL.
Este livro é uma excelente referência para aprofundar seus conhecimentos em Python. Ele cobre tópicos como tipagem dinâmica, coleções, concorrência e metaprogramação. Embora não seja estritamente necessário para o curso, ele fornece uma base sólida para entender os recursos avançados do Python usados no FastAPI.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser