No video

Criando API Rest com FastAPI (PostgreSQL, Async SQLAlchemy, AIOHTTP)

  Рет қаралды 18,905

Diogo Dev

Diogo Dev

2 жыл бұрын

Curso completo de FastAPI:
www.udemy.com/...
FastAPI é um moderno e rápido (de alta performance) framework web para construção de APIs com Python 3.6 ou superior, baseado nos type hints padrões do Python.
Neste vídeo vimos o FastAPI na prática, utilizando Postgres como banco de dados, trabalhando com sessões assíncronas de banco de dados usando SQLAlchemy e fazendo requisições assíncronas a APIs externas utilizando o ClientSession do AIOHTTP.
Construímos uma API Rest de um pequeno sistema financeiro de crytpoativos, onde podemos fazer as seguintes operações:
- Cadastrar um usuário
- Adicionar e remover ativos favoritos
- Listar usuários e seus ativos favoritos
- CRUD ativos favoritos do usuário
- Para cada ativo favorito do usuário, trazer o preço máximo e o preço mínimo do dia anterior (resumo do dia)
Link do código completo: github.com/dio...
Meu LinkedIn: / diogoduartec

Пікірлер: 38
@jeffersonalmeida4480
@jeffersonalmeida4480 4 ай бұрын
Cara, muito obrigado pela aula, você é muito didático. Muito bom o seu conteúdo. Parabéns pela iniciativa de compartilhar o seu conhecimento.
@viktorsantosdev
@viktorsantosdev Жыл бұрын
Foi meu primeiro contato com Fast API!! Achei muito bom o vídeo aprendi bastante!! Espero continuar aprendendo cntg!
@sgfaria
@sgfaria 2 жыл бұрын
Parabéns Diogo. Conhecimento, clareza e segurança no conteúdo. Obrigado.
@eduardospek
@eduardospek 2 жыл бұрын
Ótimo conteúdo!
@ramongiovane
@ramongiovane Жыл бұрын
Ótimo vídeo! Obrigado!
@JeffersonAntuness
@JeffersonAntuness 2 жыл бұрын
Parabéns pela aula, contéudo esta muito bom!
@fabiosousa9219
@fabiosousa9219 2 жыл бұрын
Vídeo top mano, parabéns!
@matheussoares8108
@matheussoares8108 2 жыл бұрын
Muito bom
@vitorkaviski7833
@vitorkaviski7833 Жыл бұрын
Que Incrível a sua explicação! Estava a um tempo procurando uma solução para isso! Você teria alguma sugestão de site para fazer deploy gratuito de FastAPIs em Python, já que o Heroku vai se tornar pago? Tenho algumas APIs em Python lá já e to ficando meio desesperado kkk
@gustavo8433
@gustavo8433 2 жыл бұрын
Olá. Parabéns pelo vídeo. Seria possível utilizar plotly/ dash para construir aplicações com dashboards dentro da FastApi ?
@alopsantos
@alopsantos Жыл бұрын
Fala Diogo, parabéns pelo conteúdo! Me tira uma dúvida, da para usar firebird no lugar do postgres ? Abs!
@joaovictorduarte5776
@joaovictorduarte5776 2 жыл бұрын
Ótimo vídeo, difícil achar esse tipo de conteúdo em português.
@ramongiovane
@ramongiovane Жыл бұрын
É verdade. SQLAlchemy em si ja é dificil achar, com async e FastApi então hehe.
@paulomarvin7806
@paulomarvin7806 2 жыл бұрын
Olá Diogo, estou aprendendo e esse tutorial esta me ajudando muito, só tenho uma dúvida sobre a pasta pgdata, quando dou um docker compose up --build pela primeira vez ele cria essa pasta normalmente, porém com proteção, ou seja, não pode ser delatada nem sobrescrita. Então se, por exemplo, eu quiser buildar de novo o postgresql ele sempre dá um erro pq não consegue sobrescrever essa pasta. Para continuar fico dando um sudo chown -R pgdata, mas creio que não seja o ideal fazer isso. Se vc tiver alguma ideia de como corrigir isso pelo docker para que ela fica desprotegida me ajudaria muito. Caso vc tenha explicado isso em algum momento do vídeo peço desculpas, pois não vi ele todo ainda, pois estou usando apenas algumas partes do seu vídeo.
@diogodev
@diogodev 2 жыл бұрын
Opa, tudo bem Paulo? Desculpa pela demora. Então, você não deve colocar o --build pois não temos nada para bulidar, as imagens que usamos no docker-compose (postgresql e pgadmin) já estão prontas, o docker-compose apenas vai subir os containers. Você só precisaria do --build se tivéssemos construído alguma imagem em um Dockerfile.
@paulomarvin7806
@paulomarvin7806 2 жыл бұрын
@@diogodev Obrigado pelo esclarecimento Diego.
@Calebbds
@Calebbds 2 жыл бұрын
Fala Diogo, ótimo conteúdo irmão! Quando eu vou iniciar as tabelas do banco de dados com o comando run(create_engine()) dá uma exceção: "RuntimeError: Event loop is closed" As tabelas são criadas, mas aparece esse erro no terminal, e no seu não aparece. Pesquisei a respeito, mas não achei solução. Você tem ideia do que seja? Outra coisa, se eu precisar alterar as tabelas, precisa resetar tudo, ou tem algum comando que só faça a alteração? ( O comando "await connection.run_sync(Base.metadata.drop_all) zera o banco e apaga tudo)
@caiochavesdev
@caiochavesdev Жыл бұрын
Estou com o mesmo problema ;(
@Calebbds
@Calebbds Жыл бұрын
@@caiochavesdev comecei a trabalhar com Linux, e percebi que o erro só acontece no Windows, deve ser algum bug da biblioteca. Mas mesmo dando o erro no windows, funciona direitinho. É só depois você encerrar o terminal, e olhar no banco de dados, ele vai ter criado normalmente. Sobre o drop_all, você pode tirar esse comando e deixar somente o create_all que ele vai criar as tabelas que precisar, só não altera as existentes.
@danielvianati
@danielvianati 2 жыл бұрын
Fala Diogo. Como vão as coisas por ai? Você poderia passar um e-mail para trocar uma ideia ou até um freela para me ajudar a migrar um projeto pequeno feito em java?
@XxP0WeReDxX
@XxP0WeReDxX Жыл бұрын
E sobre paginação? Como fazer as paginações utilizando as boas práticas?
@diogodev
@diogodev Жыл бұрын
Salve! Aqui está o vídeo, obrigado pela ideia. kzfaq.info/get/bejne/d7icmLeaqdXSo30.html
@Rafa200945
@Rafa200945 2 жыл бұрын
Meu amigo, tentei reproduzir aqui. Travei no erro "ModuleNotFoundError: No module named 'database'".
@diogodev
@diogodev 2 жыл бұрын
Só pra entender, vc fez isso?: 1. pwd na pasta raiz do seu projeto para pegar o caminho do projeto 2. Add o camimho na variável PYTHONPATH no arquivo .env 3. Restartou a venv
@diogodev
@diogodev 2 жыл бұрын
Você pode fazer isso também: Com o ambiente virtual startado execute "source .env", isso vai exportar as variáveis de ambiente que estão no arquivo .env. Não se esqueça de atualizar o PYTHONPATH com o caminho do seu diretório.
@Rafa200945
@Rafa200945 2 жыл бұрын
@@diogodev Acabamos de resolver e vim deixar documentado aqui. Em vez do source.env o que funcionou foi o comando "export $(cat .env)" agora posso seguir com o tutorial hehehehehe.
@jammingkinght
@jammingkinght 5 ай бұрын
Não entendi pq não usou a api da binance
@joaovictor-dl6ve
@joaovictor-dl6ve 2 жыл бұрын
Mano, me tira uma dúvida, fastAPI escala?
@diogodev
@diogodev 2 жыл бұрын
Opa Joao, desculpa pela demora. Escala sim, ele roda em cima do uvicorn ou gunicorn e você pode definir o número de workers na hora de subir a aplicação usando o parâmetro --workers. Exemplo: uvicorn app.main:app --workers 4
@joaovictor-dl6ve
@joaovictor-dl6ve 2 жыл бұрын
@@diogodev Consegue me resumir oq é um worker? Seria uma thread?
@diogodev
@diogodev 2 жыл бұрын
​@@joaovictor-dl6ve creio que o termo mais adequado seria processo, se o servidor onde você vai fazer o deploy da sua aplicação tiver múltiplos cores então você consegue ter múltiplos processos (cada processo rodando em um core).
@mateusalves2100
@mateusalves2100 Жыл бұрын
asyncpg.exceptions.InvalidPasswordError: password authentication failed for user "admin" || tá dando esse erro alguém sabe resolver?
@matheusfreire8685
@matheusfreire8685 Жыл бұрын
Resolveu o problema? To tendo esse erro tmb
@jeffersonalmeida4480
@jeffersonalmeida4480 5 ай бұрын
Sei que 1 ano depois é dureza de perguntar, mas resolveu como? hahaha . Tô com esse mesmo problema, só aqui no futuro. hahaha
@jeffersonalmeida4480
@jeffersonalmeida4480 4 ай бұрын
Resolvi! O campo “Host name / address” na aba “Connection” de “Register server”, deve conter o endereço IP da rede onde o container está rodando.
@jeffersonalmeida4480
@jeffersonalmeida4480 4 ай бұрын
@@matheusfreire8685 Resolvi! O campo “Host name / address” na aba “Connection” de “Register server”, deve conter o endereço IP da rede onde o container está rodando.
Entendendo async/await em Python com análise de performance
38:18
01 - Primeira API REST com FastAPI
28:31
Anderson Rocha
Рет қаралды 6 М.
Look at two different videos 😁 @karina-kola
00:11
Andrey Grechka
Рет қаралды 11 МЛН
Lehanga 🤣 #comedy #funny
00:31
Micky Makeover
Рет қаралды 26 МЛН
Ouch.. 🤕
00:30
Celine & Michiel
Рет қаралды 36 МЛН
If Barbie came to life! 💝
00:37
Meow-some! Reacts
Рет қаралды 52 МЛН
FastAPI, Flask or Django - Which Should You Use?
9:49
Tech With Tim
Рет қаралды 67 М.
Brutally honest advice for new .NET Web Developers
7:19
Ed Andersen
Рет қаралды 136 М.
Autenticação no FastAPI com JWT | Validação de Token
18:23
Diogo Dev
Рет қаралды 1,2 М.
Build your first REST API with Flask and PostgreSQL
27:42
teclado
Рет қаралды 64 М.
DHH discusses SQLite (and Stoicism)
54:00
Aaron Francis
Рет қаралды 58 М.
Python Asyncio, Requests, Aiohttp | Make faster API Calls
17:56
Patrick Collins
Рет қаралды 129 М.
Como Criar API em Python Usando o FastAPI
25:14
Hashtag Programação
Рет қаралды 59 М.
How to Use FastAPI: A Detailed Python Tutorial
20:38
ArjanCodes
Рет қаралды 227 М.
Como Fazer Uma API (o jeito mais fácil e moderno que eu já vi)
22:58
Filipe Deschamps
Рет қаралды 479 М.
Look at two different videos 😁 @karina-kola
00:11
Andrey Grechka
Рет қаралды 11 МЛН