We may earn an affiliate commission when you visit our partners.
Course image
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 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 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.

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.

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.

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

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Emphasizes asynchronous programming with async/await syntax, which can significantly improve the performance of I/O-bound applications, making it highly relevant for backend development
Covers integration with PostgreSQL, a popular and powerful open-source relational database, and SQLAlchemy, a widely-used Python SQL toolkit and Object Relational Mapper, which are valuable skills for backend engineers
Includes comprehensive coverage of Docker and Docker Compose, essential tools for containerizing and managing applications, streamlining deployment and ensuring consistency across different environments
Features Test-Driven Development (TDD) using Pytest, promoting robust and maintainable code, which is a crucial practice for professional software development
Requires installing and configuring WSL for Windows users, which may present a barrier for learners using other operating systems, such as macOS or Linux
Utilizes Poetry for dependency management, which, while modern and effective, might require learners familiar with older tools like pip to adjust their workflow

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Curso prático fastapi tdd projetos

De acordo com os alunos, este curso oferece uma abordagem altamente prática para o desenvolvimento backend com FastAPI, com ênfase em TDD. Muitos destacam os dois projetos abrangentes como o ponto forte, permitindo aplicar conhecimentos de Docker, PostgreSQL e SQLAlchemy. A explicação sobre programação assíncrona é considerada clara e útil. Alguns alunos mencionam que o curso é melhor aproveitado por quem já tem alguma base em Python e desenvolvimento web, embora a cobertura de diversas ferramentas seja um grande diferencial.
Didática clara e objetiva.
"O instrutor tem uma didática excelente e explica os conceitos complexos de forma simples."
"Gostei muito da clareza das explicações do professor."
"Professor demonstra domínio sobre o conteúdo apresentado."
"Didática boa, explicações diretas e foco no que importa."
Conceitos assíncronos bem explicados.
"A explicação sobre programação assíncrona é muito clara e didática, desmistificando o async/await."
"Entendi finalmente como funciona async/await em Python e como usar com FastAPI."
"A comparação de performance entre código síncrono e assíncrono foi muito instrutiva."
"Seção de async/await é fundamental e foi bem abordada."
Inclui Docker, Postgres, SQLAlchemy.
"A integração com Docker, Docker Compose, PostgreSQL e SQLAlchemy no projeto 2 é fantástica, um stack completo."
"Cobre não apenas FastAPI, mas também o ecossistema ao redor, o que é muito importante para projetos reais."
"Ter a configuração e uso de Docker e banco de dados explicados junto com o framework foi muito útil."
"Aprendi a montar um ambiente de desenvolvimento completo com as ferramentas mais usadas."
Ensina desenvolvimento orientado a testes.
"A abordagem TDD no segundo projeto é excelente, mostra como construir aplicações robustas e testáveis."
"Aprender TDD na prática com um projeto real foi muito valioso para mim."
"O foco em TDD é um grande ponto positivo, algo essencial no mercado de trabalho."
"Gostei de como o TDD foi integrado ao fluxo de desenvolvimento do projeto."
Aplica conceitos em projetos reais.
"O curso é ótimo, principalmente a parte prática com os projetos. Me ajudou muito a consolidar o conhecimento de FastAPI."
"Os dois projetos são muito bem estruturados e abordam um ecossistema completo de backend, incluindo DB e TDD."
"Gostei muito dos projetos, em especial o segundo, que aplica TDD de forma muito didática."
"A parte prática com os dois projetos é o grande diferencial, consigo ver a aplicação real dos conceitos aprendidos."
Exige base sólida para melhor aproveito.
"Embora seja avançado, acho que quem já tem alguma experiência com Python e web dev aproveita mais."
"É necessário ter uma boa base em Python antes de começar para acompanhar o ritmo."
"Algumas partes poderiam ter um pouco mais de detalhe para quem não é tão familiarizado com os tópicos iniciais."

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:
Desenvolvedor Backend Python
Um Desenvolvedor Backend Python é responsável por construir e manter a lógica do lado do servidor de aplicações web. Este curso pode ser muito útil porque aborda o uso do FastAPI, um framework moderno para a construção de APIs, e ensina como integrar diversas ferramentas importantes no desenvolvimento backend com Python, como Docker, PostgreSQL e SQLAlchemy. O curso também demonstra como criar testes unitários e implementar autenticação, habilidades cruciais para um desenvolvedor backend. O aprendizado de programação assíncrona e a aplicação de metodologias como TDD (Test Driven Development) apresentadas no curso preparam o profissional para enfrentar os desafios do desenvolvimento backend no mundo real.
Testador de Software
Um Testador de Software garante a qualidade do software por meio da criação e execução de testes. Este curso pode ser muito útil para essa função, pois ensina a metodologia TDD (Test Driven Development), que consiste em escrever os testes antes de implementar o código. Além disso, o curso aborda a criação de testes unitários com Pytest, uma ferramenta popular para testes em Python. A capacidade de automatizar testes e de identificar bugs antes que eles cheguem à produção é fundamental para um testador de software. Adicionalmente, o curso aborda Docker e a integração com banco de dados.
Especialista em DevOps
Um Especialista em DevOps é responsável por automatizar e otimizar os processos de desenvolvimento e implantação de software. Este curso é valioso para essa função, pois ensina a utilizar Docker e Docker Compose, ferramentas essenciais para a conteinerização e o gerenciamento de aplicações. Além disso, o curso aborda a criação de pipelines de integração contínua e entrega contínua (CI/CD) com FastAPI, permitindo a automação de testes e a implantação de aplicações de forma eficiente. A experiência com PostgreSQL e SQLAlchemy também pode ser útil para o gerenciamento de bancos de dados em ambientes de produção. Um especialista em DevOps deve buscar aprimorar seus conhecimentos em frameworks como FastAPI.
Engenheiro de Dados
This course may be helpful to an Engenheiro de Dados because it teaches how to work with PostgreSQL and Docker, tools often used in the management and deployment of databases. The course also covers the creation of APIs with FastAPI, which allows the integration of different data sources and the construction of efficient data pipelines. The ability to develop unit tests and the understanding of asynchronous programming, topics covered in the course, are important to ensure the quality and performance of the code in data engineering projects.
Arquiteto de Software
Um Arquiteto de Software define a estrutura e o design de sistemas de software complexos. Este curso contribui para essa função ao apresentar o FastAPI, um framework moderno para a criação de APIs, e ao demonstrar como integrar diversas tecnologias no desenvolvimento backend com Python, como Docker, PostgreSQL e SQLAlchemy. A capacidade de projetar e implementar soluções escaláveis e eficientes, utilizando programação assíncrona e metodologias como TDD, é fundamental para um arquiteto de software. Além disso, o curso aborda a segurança e a autenticação, aspectos críticos no design de sistemas seguros e confiáveis. O curso prepara o arquiteto de software para projetar sistemas backend robustos e modernos.
Analista de Segurança
Um Analista de Segurança protege os sistemas e as redes de uma organização contra ameaças cibernéticas. Este curso pode ser valioso para essa função, pois aborda a segurança e a autenticação em FastAPI, ensinando a implementar mecanismos de proteção contra ataques. A compreensão de como criar APIs seguras e como validar dados de entrada é fundamental para um analista de segurança. Além disso, o curso aborda a utilização de ferramentas como JWT (JSON Web Tokens) para a autenticação de usuários. Um analista de segurança deve se manter atualizado com as melhores práticas de segurança no desenvolvimento de software.
Líder técnico
Um Líder Técnico é responsável por coordenar e orientar uma equipe de desenvolvedores. Este curso pode ser valioso para essa função, pois apresenta o FastAPI, um framework moderno para a criação de APIs, e demonstra como integrar diversas tecnologias no desenvolvimento backend com Python. A capacidade de entender os desafios técnicos de um projeto e de orientar a equipe na busca por soluções eficientes é fundamental para um líder técnico. Além disso, o curso aborda a programação assíncrona e a metodologia TDD, temas importantes na liderança de equipes de desenvolvimento. O curso aborda Docker e a integração com banco de dados.
Engenheiro de Machine Learning
Um Engenheiro de Machine Learning implementa e otimiza modelos de aprendizado de máquina em ambientes de produção. Este curso pode ser útil para essa função, pois aborda a criação de APIs com FastAPI, o que permite a exposição de modelos de machine learning como serviços web. A capacidade de integrar diferentes ferramentas e tecnologias, como Docker e PostgreSQL, também é importante para o gerenciamento e a implantação de modelos de machine learning. Além disso, o curso aborda a programação assíncrona, que pode ser útil para o processamento de grandes volumes de dados. Engenheiros de Machine Learning devem procurar cursos que abordem testes e segurança.
Consultor de Tecnología
Um Consultor de Tecnologia auxilia empresas a implementar soluções de software eficientes. Este curso pode ser útil para essa função, pois apresenta o FastAPI, um framework moderno para a criação de APIs, e demonstra como integrar diversas tecnologias no desenvolvimento backend com Python. A capacidade de entender as necessidades de um cliente e de propor soluções personalizadas utilizando tecnologias como Docker, PostgreSQL e SQLAlchemy é fundamental para um consultor de tecnologia. Além disso, o curso aborda a segurança e a autenticação, aspectos críticos na consultoria de sistemas seguros e confiáveis. Um consultor de tecnologia deve se manter atualizado com as últimas tendências em desenvolvimento de software.
Cientista de Dados
Um Cientista de Dados coleta, analisa e interpreta grandes volumes de dados para identificar padrões e insights. Este curso pode auxiliar, pois a habilidade de construir APIs para disponibilizar modelos de ciência de dados é valiosa. O curso ensina a utilização de ferramentas como o FastAPI para construir APIs eficientes para o consumo desses modelos, bem como a integração com PostgreSQL para o armazenamento e recuperação de dados. Um cientista de dados interessado em colocar seus modelos em produção pode achar este curso útil.
Analista de Sistemas
Um Analista de Sistemas analisa as necessidades de uma organização e propõe soluções de software para otimizar seus processos. Este curso pode ser útil para essa função, pois apresenta o FastAPI, um framework moderno para a criação de APIs, e demonstra como integrar diversas tecnologias no desenvolvimento backend com Python. A capacidade de entender as necessidades de um cliente e de traduzi-las em requisitos de software é fundamental para um analista de sistemas. Além disso, o curso aborda a modelagem de dados com Pydantic e a integração com bancos de dados PostgreSQL, aspectos importantes na análise de sistemas. O curso demonstra como criar testes unitários e implementar autenticação.
Professor de Programação
Um Professor de Programação ensina os fundamentos e as práticas de programação para estudantes de diferentes níveis. Este curso pode ser valioso para essa função, pois apresenta o FastAPI, um framework moderno para a criação de APIs, e demonstra como integrar diversas tecnologias no desenvolvimento backend com Python. A capacidade de explicar conceitos complexos de forma clara e concisa é fundamental para um professor de programação. Além disso, o curso aborda a programação assíncrona e a metodologia TDD, temas importantes no ensino de programação. Desse modo, um professor de programação interessado em frameworks como FastAPI deve realizar este curso.
Consultor de Inovação
Um Consultor de Inovação atua no desenvolvimento de soluções inovadoras para empresas, frequentemente envolvendo a adoção de novas tecnologias. Este curso pode ser relevante, pois ele explora ferramentas e metodologias modernas de desenvolvimento backend, como FastAPI, Docker, PostgreSQL, TDD e programação assíncrona. O conhecimento dessas tecnologias e práticas permite que o consultor de inovação proponha soluções mais eficientes e alinhadas com as tendências atuais do mercado.
Analista de negocios
Um Analista de Negócios identifica as necessidades de negócio e propõe soluções tecnológicas para atendê-las. Este curso, embora focado em aspectos técnicos do desenvolvimento backend, pode auxiliar o analista na compreensão das capacidades e limitações das tecnologias envolvidas, como FastAPI e PostgreSQL. Esse conhecimento pode ser útil na definição de requisitos e na avaliação de diferentes soluções tecnológicas para os problemas de negócio.

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