O próprio FastAPI é uma estrutura web de alto desempenho. Ele não oferece suporte direto a operações de banco de dados, mas pode interagir com vários bancos de dados integrando várias bibliotecas de banco de dados. FastAPI suporta quase todos os bancos de dados relacionais e não relacionais, que dependem principalmente da biblioteca de banco de dados escolhida (como a biblioteca ORM) e do driver de banco de dados correspondente. A seguir estão alguns bancos de dados comumente suportados e bibliotecas relacionadas de FastAPI:
Banco de dados relacional
PostgreSQL:
Pode ser integrado ao FastAPI por meio de bibliotecas ORM como SQLAlchemy e Tortoise ORM.
Para acesso assíncrono ao banco de dados, você pode usar asyncpg como driver assíncrono para PostgreSQL.
MySQL:
Você também pode usar SQLAlchemy como uma biblioteca ORM, mas precisa se conectar ao banco de dados MySQL por meio de bibliotecas como pymysql ou mysqlclient.
SQLite:
Ideal para pequenos projetos e desenvolvimento de protótipos porque é um banco de dados leve e baseado em arquivo que não requer a execução de um processo de servidor separado.
Você pode usar bibliotecas ORM diretamente, como SQLAlchemy, para operar.
Oráculo:
FastAPI pode interagir com bancos de dados Oracle por meio de bibliotecas ORM como SQLAlchemy.
O driver de banco de dados Oracle correspondente precisa ser instalado, como cx_Oracle.
Servidor Microsoft SQL:
Você também pode usar bibliotecas ORM como SQLAlchemy para operar, mas precisa instalar bibliotecas como pyodbc ou pymssql para se conectar ao banco de dados SQL Server.
banco de dados não relacional
MongoDB:
FastAPI pode interagir com MongoDB por meio de bibliotecas como MongoEngine e Motor.
Motor é um driver assíncrono MongoDB Python que se adapta bem aos recursos assíncronos do FastAPI.
Redis:
Embora o Redis seja geralmente considerado um armazenamento de estrutura de dados na memória, ele também pode ser usado em cenários como cache e mensagens.
FastAPI pode interagir de forma assíncrona com Redis por meio de bibliotecas como aioredis.
Seleção de biblioteca de banco de dados
SQLAlquimia:
É uma biblioteca ORM muito popular que oferece funções ricas, como definição de modelo, mapeamento de relacionamento, gerenciamento de sessão, etc.
Ele oferece suporte a vários back-ends de banco de dados e integra-se perfeitamente com FastAPI.
Tartaruga ORM:
É uma biblioteca ORM assíncrona projetada especificamente para Python, fornecendo uma experiência de uso semelhante ao Django ORM.
Ele combina perfeitamente com os recursos assíncronos do FastAPI e é adequado para cenários que exigem processamento de alta simultaneidade.
Pidantico:
Embora não seja uma biblioteca de banco de dados, ela desempenha um papel importante no FastAPI para validação e serialização de dados.
Ele é usado em conjunto com bibliotecas ORM, como SQLAlchemy, para melhorar ainda mais a eficiência e a segurança do processamento de dados.
Resumindo, FastAPI suporta uma variedade de bancos de dados, dependendo da biblioteca de banco de dados escolhida e do driver de banco de dados correspondente. Na hora de escolher, é preciso considerar fatores como as necessidades específicas do projeto, as características de desempenho do banco de dados e a familiaridade da equipe de desenvolvimento.