Uma API para acessar dados armazenados no Supabase no PowerBI.
Esse código é um exemplo de um servidor web baseado no framework FastAPI que fornece uma API para acessar dados de uma fonte chamada Supabase. Vou explicar as principais partes do código:
- Importações:
O código começa importando várias bibliotecas e módulos necessários para a execução do servidor:
os(para acesso ao sistema operacional),uvicorn(para executar o servidor),traceback(para rastrear exceções),math(para funções matemáticas),dotenv(para carregar variáveis do ambiente),supabase(para connectar no banco de dados),fastapi(para colocar o servidor no ar)
-
Configuração do ambiente:
- O código carrega variáveis de ambiente usando a biblioteca
dotenv, que permite configurar variáveis de ambiente a partir de um arquivo.env. Isso é útil para armazenar informações sensíveis, como chaves de API e URLs de banco de dados, fora do código fonte.
- O código carrega variáveis de ambiente usando a biblioteca
-
Middleware de CORS e GZip:
- Além de inicializado o servidor FastAPI, são adicionados dois middlewares ao aplicativo:
CORSMiddlewareé usado para habilitar o Cross-Origin Resource Sharing (CORS), permitindo que o servidor responda a solicitações de diferentes origens (navegadores da web, por exemplo).GZipMiddlewareé usado para comprimir as respostas do servidor usando o algoritmo GZip, economizando largura de banda e melhorando o desempenho.
- Além de inicializado o servidor FastAPI, são adicionados dois middlewares ao aplicativo:
-
Carregamento de variáveis de configuração:
- As variáveis
valid_apikeysekeyssão carregadas do ambiente. Elas são interpretadas usandoeval, o que significa que essas variáveis devem ser representadas em formato de lista ou dicionário válido no arquivo.env.
- As variáveis
-
Função
stream_data:- Essa função é definida para se conectar ao Supabase (um serviço de banco de dados) usando as informações de URL e chave API fornecidas e recuperar dados de uma tabela especificada. Ela pode recuperar todos os registros da tabela ou registros de uma página específica, dependendo do valor do parâmetro
page.
- Essa função é definida para se conectar ao Supabase (um serviço de banco de dados) usando as informações de URL e chave API fornecidas e recuperar dados de uma tabela especificada. Ela pode recuperar todos os registros da tabela ou registros de uma página específica, dependendo do valor do parâmetro
-
Rotas da API:
- O código define três rotas principais para a API:
- A rota raiz ("/") apenas retorna uma mensagem indicando que a API está funcionando.
- A rota "/retrieve_page/{tbl_name}" permite que os clientes solicitem dados de uma tabela específica e página. É necessário fornecer uma chave de API (
apikey) que será verificada na lista de chaves válidas antes de permitir o acesso aos dados. - A rota "/retrieve/{tbl_name}" é semelhante à rota anterior, mas sempre retorna a primeira página de dados da tabela especificada.
- O código define três rotas principais para a API:
Resumidamente, esse código cria um servidor web usando o FastAPI que fornece endpoints para acessar dados de uma fonte Supabase, com autenticação baseada em chaves de API e suporte a CORS e compressão GZip para melhor desempenho.