FastAPI incrível |
Uma lista com curadoria de coisas incríveis relacionadas ao FastAPI.
FastAPI é uma estrutura web Python moderna, de alto desempenho e com baterias incluídas, perfeita para construir APIs RESTful.
Conteúdo
- Extensões de terceiros
- Administrador
- Autenticação
- Bancos de dados
- Ferramentas para desenvolvedores
- E-mail
- Utilitários
- Recursos
- Recursos Oficiais
- Recursos Externos
- Podcasts
- Artigos
- Tutoriais
- Palestras
- Vídeos
- Cursos
- Melhores Práticas
- Hospedagem
- Projetos
- Padrão
- Imagens Docker
- Projetos de código aberto
- Patrocinadores
Extensões de terceiros
Administrador
- FastAPI Admin – painel de administração funcional que fornece uma interface de usuário para realizar operações CRUD em seus dados. Atualmente só funciona com o Tortoise ORM.
- FastAPI Amis Admin - Uma estrutura de administração FastAPI de alto desempenho, eficiente e facilmente extensível.
- Piccolo Admin - Uma GUI de administração poderosa e moderna, usando o Piccolo ORM.
- SQLAlchemy Admin - Painel de administração para FastAPI/Starlette que funciona com modelos SQLAlchemy.
- Starlette Admin - Estrutura administrativa para FastAPI/Starlette, com suporte para SQLAlchemy, SQLModel, MongoDB e ODMantic.
Autenticação
- AuthX – Autenticações personalizáveis e gerenciamento Oauth2 para FastAPI.
- Autenticação FastAPI – autenticação conectável que suporta o fluxo de senha OAuth2 com acesso JWT e tokens de atualização.
- FastAPI Azure Auth – Autenticação Azure AD para suas APIs com suporte para um e vários locatários.
- FastAPI Cloud Auth - Integração simples entre FastAPI e serviços de autenticação em nuvem (AWS Cognito, Auth0, Firebase Authentication).
- FastAPI Login - Gerenciamento e autenticação de contas (baseado em Flask-Login).
- Autenticação FastAPI JWT - autenticação JWT (baseada em Flask-JWT-Extended).
- Permissões FastAPI - Permissões em nível de linha.
- Segurança FastAPI – Implementa autenticação e autorização como dependências em FastAPI.
- FastAPI Simple Security – Segurança de chave de API pronta para uso, gerenciável por meio de operações de caminho.
- Usuários FastAPI - Gerenciamento de contas, autenticação, autorização.
Bancos de dados
ORMs
- Edgy ORM – Bancos de dados complexos simplificados.
- FastAPI SQLAlchemy - Integração simples entre FastAPI e SQLAlchemy.
- Fastapi-SQLA - extensão SQLAlchemy para FastAPI com suporte para paginação, assíncio e pytest.
- FastAPIwee – Uma maneira simples de criar API REST baseada em modelos PeeWee.
- GINO - Um ORM assíncrono leve construído sobre o núcleo SQLAlchemy para Python assíncrono.
- ORM - Um ORM assíncrono.
- ormar - Ormar é um ORM assíncrono que usa validação Pydantic e pode ser usado diretamente em solicitações e respostas FastAPI, então você fica com apenas um conjunto de modelos para manter. Migrações de alambique incluídas.
- Exemplo de FastAPI - Usando FastAPI com ormar.
- Piccolo - Um ORM assíncrono e construtor de consultas, com suporte para Postgres e SQLite, com baterias (migrações, segurança, etc).
- Exemplos de FastAPI - Usando FastAPI com Piccolo.
- Prisma Client Python - Um ORM gerado automaticamente e totalmente seguro, desenvolvido pela Pydantic e adaptado especificamente para o seu esquema - suporta SQLite, PostgreSQL, MySQL, MongoDB, MariaDB e muito mais.
- Tortoise ORM - Um ORM assíncrono (Object Relational Mapper) fácil de usar inspirado no Django.
- Exemplo FastAPI - Um exemplo de integração Tortoise-ORM FastAPI.
- Tutorial: Configurando o Tortoise ORM com FastAPI
- Aerich - Ferramentas de migração Tortoise ORM.
- Saffier ORM – O único ORM Python que você realmente precisará.
- SQLModel - SQLModel (que é desenvolvido por Pydantic e SQLAlchemy) é uma biblioteca para interagir com bancos de dados SQL a partir de código Python, com objetos Python.
Construtores de consultas
- asyncpgsa – Um wrapper em torno do asyncpg para uso com SQLAlchemy Core.
- Bancos de dados - Construtor de consultas SQL assíncrono que funciona sobre a linguagem de expressão SQLAlchemy Core.
ODM
- Beanie - ODM Python assíncrono para MongoDB, baseado em Motor e Pydantic, que oferece suporte a migrações de dados e esquemas prontos para uso.
- MongoEngine - Um mapeador de objetos-documentos (pense em ORM, mas para bancos de dados de documentos) para trabalhar com MongoDB a partir de Python.
- Motor - driver Python assíncrono para MongoDB.
- ODMantic - AsyncIO MongoDB ODM integrado ao Pydantic.
- PynamoDB – Uma interface Python para o DynamoDB da Amazon.
Outras ferramentas
- Pydantic-SQLAlchemy - Converta modelos SQLAlchemy em modelos Pydantic.
- FastAPI-CamelCase - Suporte CamelCase JSON para FastAPI utilizando Pydantic.
- Modelos CamelCase com FastAPI e Pydantic - Acompanha postagem no blog do autor da extensão.
Ferramentas para desenvolvedores
- FastAPI Code Generator - Crie um aplicativo FastAPI a partir de um arquivo OpenAPI, permitindo o desenvolvimento orientado por esquema.
- FastAPI Client Generator - Gere um cliente API compatível com mypy e IDE a partir de uma especificação OpenAPI.
- FastAPI Cruddy Framework – Uma biblioteca complementar ao FastAPI projetada para trazer a produtividade de desenvolvimento de Ruby on Rails, Ember.js ou Sails.js para o ecossistema FastAPI.
- FastAPI MVC – Ferramenta de produtividade do desenvolvedor para criar APIs FastAPI prontas para produção de alta qualidade.
- FastAPI Profiler - Um FastAPI Middleware de joerick/pyinstrument para verificar o desempenho do seu serviço.
- Versionamento FastAPI - versionamento de API.
- API REST do Jupyter Notebook – Execute seus notebooks Jupyter como endpoints de API RESTful.
- Gerenciar FastAPI - ferramenta CLI para gerar e gerenciar projetos FastAPI.
- msgpack-asgi - Negociação automática de conteúdo do MessagePack.
E-mail
- FastAPI Mail - Sistema de correio leve para envio de e-mails e anexos (individuais e em massa).
Utilitários
- ID de correlação ASGI - middleware de registro de ID de solicitação.
- FastAPI Cache - Um sistema de cache simples e leve.
- FastAPI Cache - Uma ferramenta para armazenar em cache a resposta FastAPI e os resultados da função, com suporte para Redis, Memcached, DynamoDB e back-ends na memória.
- FastAPI Chameleon – Adiciona integração da linguagem de modelo Chameleon ao FastAPI.
- FastAPI CloudEvents - integração CloudEvents para FastAPI.
- FastAPI Contrib - Conjunto opinativo de utilitários: paginação, middleware de autenticação, permissões, manipuladores de exceção personalizados, suporte MongoDB e middleware Opentracing.
- FastAPI CRUDRouter - Um roteador FastAPI que cria e documenta automaticamente rotas CRUD para seus modelos.
- Eventos FastAPI - Biblioteca de envio/manipulação de eventos assíncronos para FastAPI e Starlette.
- FastAPI FeatureFlags – Implementação simples de sinalizadores de recursos para FastAPI.
- FastAPI Jinja – Adiciona integração da linguagem de modelo Jinja ao FastAPI.
- FastAPI Lazy - Pacote Lazy para iniciar seu projeto usando FastAPI.
- FastAPI Limiter – Um limitador de taxa de solicitação para FastAPI.
- FastAPI MQTT – Uma extensão para o protocolo MQTT.
- FastAPI Opentracing - suporte para middleware Opentracing e rastreamento de banco de dados para FastAPI.
- Paginação FastAPI - Paginação para FastAPI.
- Plug-ins FastAPI - plug-ins Redis e Scheduler.
- FastAPI ServiceUtils - Gerador para criação de serviços API.
- FastAPI SocketIO - Fácil integração para FastAPI e SocketIO.
- Utilitários FastAPI - Utilitários reutilizáveis: visualizações baseadas em classes, roteador de inferência de resposta, tarefas periódicas, middleware de temporização, sessão SQLAlchemy, simplificação de especificações OpenAPI.
- FastAPI Websocket Pub/Sub – O padrão clássico de pub/sub tornado facilmente acessível e escalonável na web e na nuvem em tempo real.
- FastAPI Websocket RPC - RPC (JSON RPC bidirecional) sobre Websockets tornado fácil, robusto e pronto para produção.
- Instrumentação OpenTelemetry FastAPI - A biblioteca fornece instrumentação automática e manual de estruturas da web FastAPI, instrumentando solicitações http atendidas por aplicativos que utilizam a estrutura.
- Pré-renderizar Python Starlette - middleware Starlette para pré-renderizar.
- Prometheus FastAPI Instrumentator - Um Prometheus Instrumentator configurável e modular para sua aplicação FastAPI.
- SlowApi - Limitador de taxa (baseado em Flask-Limiter).
- Contexto Starlette - Permite armazenar e acessar os dados da solicitação em qualquer lugar do seu projeto, útil para registro.
- Starlette Exporter - Mais uma integração do prometheus para FastAPI e Starlette.
- Starlette OpenTracing - suporte Opentracing para Starlette e FastAPI.
- Starlette Prometheus - Integração Prometheus para FastAPI e Starlette.
- Strawberry GraphQL - biblioteca Python GraphQL baseada em classes de dados.
Recursos
Recursos Oficiais
- Documentação - Documentação abrangente.
- Tutorial - Tutorial oficial mostrando como usar FastAPI com a maioria de seus recursos, passo a passo.
- Código-fonte - hospedado no GitHub.
- Discord - Converse com outros usuários FastAPI.
Recursos Externos
- TestDriven.io FastAPI – Vários artigos específicos do FastAPI que se concentram no desenvolvimento e teste de APIs RESTful prontas para produção, servindo modelos de aprendizado de máquina e muito mais.
Podcasts
- Construa a próxima geração de aplicativos Web Python com FastAPI - Neste episódio do Podcast Init, o criador do FastAPI, Sebastián Ramirez, compartilha suas motivações para construir o FastAPI e como ele funciona nos bastidores.
- FastAPI em PythonBytes – Boa visão geral do projeto.
Artigos
- FastAPI arruinou o Flask para sempre para mim
- Por que mudamos do Flask para FastAPI para aprendizado de máquina de produção - Veja detalhadamente por que você pode querer migrar do Flask para FastAPI.
Tutoriais
- SQLAlchemy assíncrono com FastAPI – Aprenda como usar SQLAlchemy de forma assíncrona.
- Crie e proteja uma API em Python com FastAPI - Proteja e mantenha uma API baseada em FastAPI e SQLAlchemy.
- Implantar um aplicativo Dockerizado FastAPI no Google Cloud Platform: um breve guia para implantar um aplicativo Dockerizado Python no Google Cloud Platform usando Cloud Run e uma instância SQL.
- Implante modelos de aprendizado de máquina com Keras, FastAPI, Redis e Docker
- Implantando classificações Iris com FastAPI e Docker - Dockerizando um aplicativo FastAPI.
- Desenvolvendo e testando uma API assíncrona com FastAPI e Pytest - Desenvolva e teste uma API assíncrona com FastAPI, Postgres, Pytest e Docker usando Desenvolvimento Orientado a Testes.
- FastAPI para usuários do Flask - Aprenda FastAPI com uma comparação de código lado a lado com o Flask.
- Introdução ao GraphQL em Python com FastAPI e Ariadne - Gere um playground FullStack usando FastAPI, GraphQL e Ariadne.
- Implementando serviços FastAPI – Abstração e separação de preocupações – Aplicação FastAPI e estrutura de serviço para uma base de código mais sustentável.
- Apresentando FARM Stack - FastAPI, React e MongoDB - Primeiros passos com uma pilha completa de aplicativos da web FastAPI.
- Multilocação com FastAPI, SQLAlchemy e PostgreSQL - Aprenda como preparar aplicativos FastAPI para multilocatários.
- Portando Flask para FastAPI para serviço de modelo de ML - Comparação de Flask vs FastAPI.
- Streaming de dados em tempo real usando FastAPI e WebSockets – Aprenda como transmitir dados do FastAPI diretamente em um gráfico em tempo real.
- Executando aplicativos FastAPI em produção - Use Gunicorn com systemd para implantações de produção.
- Servindo modelos de aprendizado de máquina com FastAPI em Python - Use FastAPI para implantar e servir modelos de aprendizado de máquina em Python de maneira rápida e fácil como uma API RESTful.
- Streaming de vídeo com FastAPI – Aprenda como servir streams de vídeo.
- Usando hipóteses e esquemas para testar FastAPI - Aplique testes baseados em propriedades ao FastAPI.
Palestras
- PyConBY 2020: Sirva modelos de ML facilmente com FastAPI - Na palestra de Sebastian Ramirez, você aprenderá como construir facilmente uma API da web (JSON) pronta para produção para seus modelos de ML com FastAPI, incluindo práticas recomendadas por padrão.
- PyCon UK 2019: FastAPI desde o início - Esta palestra mostra como construir uma API REST simples para um banco de dados desde o início usando FastAPI.
Vídeos
- Construindo um Stock Screener com FastAPI - Ao construir um stock screener baseado na web com FastAPI, você será apresentado a muitos dos recursos do FastAPI, incluindo modelos Pydantic, injeção de dependência, tarefas em segundo plano e integração SQLAlchemy.
- Construindo APIs da Web usando FastAPI - Use FastAPI para construir uma interface de programação de aplicativos da web (API RESTful).
- FastAPI – Um Web Framework para Python – Veja como fazer validações numéricas com FastAPI.
- FastAPI x Django x Flask – Qual estrutura é melhor para Python em 2020? Qual usa async/await melhor? Qual é o mais rápido?
- Servindo modelos de aprendizado de máquina como API com FastAPI - Crie uma API de aprendizado de máquina com FastAPI.
Cursos
- Desenvolvimento orientado a testes com FastAPI e Docker – Aprenda como construir, testar e implantar um microsserviço de resumo de texto com Python, FastAPI e Docker.
- APIs modernas com FastAPI e Python - Um curso desenvolvido para que você crie rapidamente novas APIs em execução na nuvem com FastAPI.
- Curso Full Web Apps com FastAPI - Você aprenderá a construir aplicativos web completos com FastAPI, equivalente ao que você pode fazer com Flask ou Django.
- O guia definitivo para Celery e FastAPI – Aprenda como adicionar Celery a um aplicativo FastAPI para fornecer processamento de tarefas assíncronas.
Melhores Práticas
- Práticas recomendadas FastAPI – coleção de práticas recomendadas em um repositório GitHub.
Hospedagem
PaaS
(Plataformas como serviço)
- AWS Elastic Beanstalk
- Deta (exemplo)
- Fly (tutorial, Implantar a partir de um repositório Git)
- Google App Engine
- Heroku (tutorial passo a passo, modelo de ML no tutorial Heroku)
- Serviço de aplicativo Microsoft Azure
IaaS
(Infraestrutura como serviço)
- AWSEC2
- Google Compute Engine
- Oceano Digital
- Linode
Sem servidor
Estruturas:
- Cálice
- Mangum - Adaptador para execução de aplicações ASGI com AWS Lambda e API Gateway.
- Vercel - (anteriormente Zeit) (exemplo).
Calcular:
- AWS Lambda (exemplo)
- Funções do Google Cloud
- Funções do Azure
- Google Cloud Run (exemplo)
Projetos
Padrão
- Full Stack FastAPI e PostgreSQL - Base Project Generator - Full Stack FastAPI Template, que inclui FastAPI, React, SQLModel, PostgreSQL, Docker, GitHub Actions, HTTPS automático e muito mais (desenvolvido pelo criador do FastAPI, Sebastián Ramírez).
- FastAPI e Tortoise ORM - Modelo poderoso, mas simples, para APIs web com FastAPI (como framework web) e Tortoise-ORM (para trabalhar via banco de dados sem dor de cabeça).
- FastAPI Model Server Skeleton - Aplicativo Skeleton para servir modelos de aprendizado de máquina prontos para produção.
- cookiecutter-spacy-fastapi – Implantações rápidas de modelos spaCy com FastAPI.
- cookiecutter-fastapi - Modelo Cookiecutter para projetos FastAPI usando: Machine Learning, Poetry, Azure Pipelines e pytest.
- openapi-python-client - Gere clientes FastAPI Python modernos (via FastAPI) a partir do OpenAPI.
- Pywork - gerador Yeoman para criar um aplicativo FastAPI.
- fastapi-gino-arq-uvicorn - Modelo para API REST assíncrona de alto desempenho, em Python. FastAPI + GINO + Arq + Uvicorn (com Redis e PostgreSQL).
- Modelo FastAPI e React - padrão cookiecutter de pilha completa usando FastAPI, TypeScript, Docker, PostgreSQL e React.
- FastAPI Nano - modelo FastAPI simples com arquitetura padrão de fábrica.
- Modelo FastAPI - Gerador de projeto FastAPI flexível e leve. Inclui suporte para SQLAlchemy, vários bancos de dados, CI/CD, Docker e Kubernetes.
- FastAPI no Google Cloud Run – Boilerplate para construção de API com FastAPI, SQLModel e Google Cloud Run.
- FastAPI com Firestore - Boilerplate para construção de API com FastAPI e Google Cloud Firestore.
- fastapi-alembic-sqlmodel-async - Este é um modelo de projeto que usa FastAPI, Alembic e SQLModel assíncrono como ORM.
- fastapi-starter-project - Um modelo de projeto que usa FastAPI, SQLModel, Alembic, Pytest, Docker, GitHub Actions CI.
- Full Stack FastAPI e MongoDB - Base Project Generator - Full stack, gerador de aplicativos web moderno, que inclui FastAPI, MongoDB, Docker, Celery, React frontend, HTTPS automático e muito mais.
Imagens Docker
- inboard - Imagens Docker para potencializar seus aplicativos FastAPI e ajudá-lo a enviar com mais rapidez.
- uvicorn-gunicorn-fastapi-docker - Imagem Docker com Uvicorn gerenciada por Gunicorn para aplicações web FastAPI de alto desempenho em Python 3.7 e 3.6 com ajuste automático de desempenho.
- uvicorn-gunicorn-poetry - Esta imagem Docker fornece uma plataforma para executar FastAPI usando Gunicorn com trabalhadores Uvicorn. Ele fornece Poesia para gerenciar dependências e configurar um ambiente virtual no contêiner.
- uvicorn-poetry - Esta imagem Docker fornece uma plataforma para executar FastAPI com Uvicorn no sistema de orquestração de contêineres Kubernetes. Ele fornece Poesia para gerenciar dependências e configurar um ambiente virtual no contêiner.
Projetos de código aberto
- Astrobase - Implantações simples, rápidas e seguras em qualquer lugar.
- Projetos FastAPI incríveis - Lista organizada de projetos que usam FastAPI.
- Bitcart – Plataforma para comerciantes, usuários e desenvolvedores que oferece fácil configuração e uso.
- Bali - Simplifique a base de desenvolvimento de microsserviços nativos da nuvem em FastAPI e gRPC.
- Bunnybook – Uma pequena rede social construída com FastAPI, React+RxJs, Neo4j, PostgreSQL e Redis.
- Coronavirus-tg-api - API para rastrear o surto global de coronavírus (COVID-19, SARS-CoV-2).
- Despacho - Gerencie incidentes de segurança.
- Exemplo de FastAPI CRUD:
- Sabor assíncrono
- Sabor de sincronização
- FastAPI com Observabilidade - Observe o aplicativo FastAPI com três pilares de observabilidade: Traces (Tempo), Métricas (Prometheus), Logs (Loki) no Grafana através de OpenTelemetry e OpenMetrics.
- DogeAPI – API com alto desempenho para criação de blog simples e CRUD com OAuth2PasswordBearer.
- FastAPI Websocket Broadcast - Demonstração de 'transmissão' do Websocket.
- FastAPI com Celery, RabbitMQ e Redis - Exemplo mínimo utilizando FastAPI e Celery com RabbitMQ para fila de tarefas, Redis para back-end do Celery e Flower para monitorar as tarefas do Celery.
- JeffQL - API simples de autenticação e login usando GraphQL e JWT.
- Servidor JSON-RPC - servidor JSON-RPC baseado em FastAPI.
- Mailer - Microsserviço de mailer extremamente simples para sites estáticos.
- Markdown-Videos - API para gerar miniaturas para incorporar em seu conteúdo markdown.
- Nemo - Seja produtivo com o Nemo.
- OPAL (Open Policy Administration Layer) - Atualizações de autorização em tempo real sobre Open-Policy; construído com FastAPI, Typer e FastAPI WebSocket pub/sub.
- Aplicativo de exemplo do RealWorld - mongo
- Aplicativo de exemplo do RealWorld - postgres
- redis-streams-fastapi-chat - Um aplicativo de bate-papo simples com suporte do Redis Streams usando Websockets, Asyncio e FastAPI/Starlette.
- Sprites como serviço - Gere seus avatares pessoais de 8 bits usando Cellular Automata.
- Slackers - API de webhooks do Slack.
- TermPair - Visualize e controle terminais do seu navegador com criptografia ponta a ponta.
- Universidades - Serviço API para obtenção de informações sobre mais de 9.600 universidades em todo o mundo.
Patrocinadores
Por favor, apoie este projeto de código aberto verificando nossos patrocinadores: