In this tutorial, we will explore how to implement streaming data in FastAPI, a modern web framework for building APIs with Python.
Streaming data involves transferring data in a continuous flow, rather than sending it all at once. This can be useful for handling large amounts of data, such as audio or video files, and can also improve the performance of your API.
To get started, make sure you have FastAPI installed. You can install it using pip:
pip install fastapi uvicorn
Now, let’s create a new Python file for our FastAPI application. In this example, I’ll create a file called main.py
. Import the necessary modules:
from fastapi import FastAPI, Response
from fastapi.responses import StreamingResponse
Next, create an instance of the FastAPI class:
app = FastAPI()
Now, let’s define a route that will stream data. In this example, we’ll create a route that streams a large file line by line:
@app.get("/stream-data")
async def stream_data():
def generate_data():
with open("large_file.txt", "r") as file:
for line in file:
yield line
return StreamingResponse(generate_data())
In the code above, we define a function generate_data()
that reads a large text file line by line and yields each line. We then return a StreamingResponse
object that streams the data using the generate_data()
function.
You can now run the FastAPI application using Uvicorn:
uvicorn main:app --reload
Now, if you navigate to http://127.0.0.1:8000/stream-data
in your browser, you should see the data being streamed line by line from the file.
Streaming data can be useful for various applications, such as real-time data processing, video streaming, or any scenario where handling large amounts of data efficiently is required.
In this tutorial, we’ve covered the basics of streaming data in FastAPI. You can further customize and optimize your streaming endpoints based on your specific requirements and data sources. Happy coding!
fera demais
Boa tarde meu amigo. Para acessar uma API- token no BI atualizando em tempo um certo tempo determinado. Tem possibilidade?
Thnx
Que aula, meu amigo.
Achei muito massa, tu instigas a estudar mais. Parabéns 🎉
vlw pelo help!!!
Muito bom fera, traz videos sobre arquitetura limpa usando python😃👍
Para usar o async no fastapi nao precisa importar o asyncio?
Muito bom, parabéns e obrigado.
Show, excelente conteúdo!
Ótimo conteúdo! 👊🏽😎👏🏽👏🏽👏🏽
show gostaria de aprender criar uma api, de modo que coloque na web , existe algum servico gratis para hospedar e aprender ? pois estudo o bubble, e quero ter dados de produtos passar por api mais somente clientes com token , pode ensinar
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
Fantástico, isso é muito poderoso. Empresas gastam centenas de reais em ferramentas pra fazer isso
Que massa!
Isso também poderia ser usado para fazer streaming de vídeos ?
Que vídeo sensacional Gustavo, muito obrigado!
cara animal, tava tentando fazer um web scrape mais o menos assim:
Digita o que queremos de input pra pegar em outros sites, ex: tomate e ai o fastapi vai fazer a requisição desse input (digitado pelo usuario) em outros sites e mostrar no front-end o retorno desse item, qd tem dois sites diferentes, mostra a comparação por exemplo entre os preços do tomate.
Sabe se é possível fazer algo do genero? uma especie de live scrape. Ou até deixar o site pra atualizar automaticamente qd o preço do tomate muda sei la
Show Gustavo! Obrigado por compartilhar conhecimento com a gente!