Domine o FastAPI em 5 minutos: Guia completo para iniciantes

Foto do autor

By luis

Nos últimos anos, o FastAPI, um framework Python para o desenvolvimento de APIs web, tem ganhado notável popularidade.

As APIs (Interfaces de Programação de Aplicações) são fundamentais na arquitetura moderna, permitindo que as aplicações sejam divididas em módulos independentes e desacoplados. Essa abordagem facilita a criação rápida de aplicações e simplifica sua manutenção.

Assim, se o seu objetivo é usar Python para o desenvolvimento web, aprender FastAPI é uma excelente ideia. Este artigo abordará os conceitos básicos desta ferramenta.

O que é FastAPI?

O FastAPI é um framework web baseado em Python que tem atraído grande atenção. Sua estrutura de desenvolvimento é similar ao Flask, que era a opção mais popular para quem buscava aprender desenvolvimento web em Python.

A facilidade de uso e a documentação clara do FastAPI são notáveis. Empresas líderes como Microsoft, Netflix e Uber utilizam o FastAPI.

Embora o foco principal do FastAPI seja a criação de APIs, suas funcionalidades vão além. Ele também pode ser usado para integrar o WSGI, embora essa característica seja pouco conhecida pela maioria dos usuários.

O propósito primário do FastAPI é a criação eficiente de endpoints de API. Isso pode ser feito tanto retornando dados de dicionários Python em formato JSON quanto usando a interface interativa Swagger do OpenAPI.

O FastAPI não se limita a APIs. Ele é versátil, podendo ser utilizado para diversas tarefas de um framework web, desde o fornecimento de páginas web com o template engine Jinja2 até o suporte a aplicações baseadas em WebSockets.

Abaixo estão algumas vantagens do FastAPI:

  • O FastAPI permite a validação do tipo de dados especificado pelo desenvolvedor, inclusive em consultas JSON aninhadas.
  • Ele oferece o recurso de preenchimento automático, que agiliza o desenvolvimento, reduzindo tempo e esforço.
  • É compatível com OpenAPI e JSON Schema, facilitando a validação e anotação de documentos JSON.
  • O FastAPI permite a criação rápida de APIs GraphQL usando a biblioteca Python graphene-python.
  • O FastAPI oferece suporte a OAuth 2.0 e provedores externos.

A seguir, algumas desvantagens do FastAPI:

  • Por ser um framework relativamente novo, a comunidade de suporte do FastAPI ainda é pequena, com poucos materiais de aprendizado externos, como livros, cursos ou tutoriais.
  • A necessidade de integrar todos os componentes no FastAPI pode resultar em um arquivo principal extenso e complexo.

Recursos exclusivos do FastAPI

Estes são alguns dos recursos exclusivos que tornam o FastAPI um framework web Python de destaque:

  • Alto desempenho: O FastAPI oferece um desempenho superior em relação a outros frameworks Python. Sua arquitetura focada em velocidade o torna uma opção preferencial, aproveitando as funcionalidades do Starlette para criar APIs e gerar código de alta qualidade.
  • Desenvolvimento rápido: A utilização de códigos prontos para produção elimina a necessidade de criar tudo do zero, acelerando o processo de desenvolvimento entre 200% e 300%. O FastAPI, baseado no Starlette, possui recursos para validação e serialização de dados, além de incluir todos os componentes necessários, reduzindo o tempo de codificação.
  • Redução de bugs: O recurso de preenchimento automático insere a maior parte do código, diminuindo a ocorrência de erros e melhorando a qualidade do produto final.
  • Facilidade de aprendizado: O FastAPI utiliza o Python moderno sem introduzir novas sintaxes. Baseado no Python 3.6, ele é acessível a qualquer pessoa com bom domínio da linguagem.
  • Esforço mínimo: O FastAPI gera automaticamente a documentação OpenAPI com pouco esforço do desenvolvedor, acessível no diretório /doc da aplicação. A documentação fornece informações detalhadas sobre endpoints de API, códigos de retorno, parâmetros de resposta e outros detalhes.
  • Suporte ao editor: Todos os componentes são projetados com preenchimento automático, simplificando a produção de código. A documentação interativa também permite testar o código diretamente no navegador.
  • Padrões abertos: O framework web Python FastAPI é compatível com OpenAPI (anteriormente conhecido como Swagger), um grande benefício para a criação de APIs.

Instalação do FastAPI

A seguir, os passos para instalar o FastAPI no Linux ou Windows.

#1. Instalação do FastAPI no Linux

Instale o Python 3 no Linux com o seguinte comando:

sudo apt install python3

Instale o pip no Linux com o comando abaixo:

sudo apt install python3-pip

Em seguida, instale o FastAPI no Linux:

pip install fastapi

Você também precisará de um servidor ASGI. Instale o uvicorn usando pip:

pip install "uvicorn[standard]"

#2. Instalação do FastAPI no Windows

Instale o Python 3 no Windows através da Microsoft Store. Isso também instalará o pip.

Em seguida, instale o FastAPI no Windows:

pip install fastapi

Finalmente, instale o servidor ASGI uvicorn:

pip install "uvicorn[standard]"

Aplicações modernas do FastAPI

Aqui estão algumas aplicações modernas do FastAPI:

Documentação automatizada

Documentar tipos de API e endpoints é essencial. O FastAPI soluciona isso utilizando OpenAPI, Swagger UI e ReDoc, que são automaticamente incluídos. Isso permite que você se concentre no código sem se preocupar com a configuração de ferramentas.

Python tipado

O FastAPI usa declarações de tipo do Python 3.6 (graças ao Pydantic), permitindo especificar o tipo de uma variável. O framework se beneficia disso, oferecendo excelente suporte ao editor com preenchimento automático eficiente.

Validação

O Pydantic já integra a validação ao framework, permitindo validações de tipos Python padrão e validações de campos personalizados.

Segurança e autenticação

Essencial em qualquer API, o FastAPI oferece suporte a HTTP Basic, tokens OAuth2 (tokens JWT) e chaves de API por cabeçalho.

Natureza assíncrona

Por padrão, o FastAPI suporta endpoints assíncronos, tornando o código mais simples e eficiente, o que representa uma vantagem significativa em relação ao Flask.

FastAPI vs. Flask: Principais diferenças

Diferenças de uso

O FastAPI é um framework full-stack, oferecendo tudo o que você precisa para construir uma API. O Flask, por outro lado, é um micro framework que não inclui todas as funcionalidades do FastAPI. O Flask pode ser útil para prototipagem ou para criar aplicações web simples rapidamente.

O Flask é mais adequado para prototipar novas ideias e aplicações, enquanto o FastAPI é ideal para a criação de APIs, permitindo construir rapidamente um servidor back-end sem grande conhecimento de codificação.

Sites e aplicações web de pequena escala

O FastAPI é fácil de usar e adequado para desenvolvimento web e de aplicações de pequena escala. Ele inclui uma camada ORM que gerencia objetos de dados, permitindo acesso rápido através da codificação. A camada ORM mantém o banco de dados atualizado automaticamente, dispensando a atualização manual quando informações são adicionadas, modificadas ou excluídas.

WSGI x ASGI

Uma diferença fundamental é que o Flask utiliza WSGI para sua interface padrão, enquanto o FastAPI usa ASGI. O WSGI processa solicitações de forma síncrona, sequencialmente. Já o ASGI lida com as solicitações de forma assíncrona, permitindo que as tarefas sejam concluídas em seu próprio ritmo, sem esperar umas pelas outras.

Comunidade

Outra diferença está na comunidade. O Flask possui uma comunidade mais antiga e estabelecida, o que significa mais documentação e suporte externo. O FastAPI é um projeto mais novo, com uma comunidade em crescimento, o que implica menos ajuda externa, embora a documentação seja suficiente.

A tabela abaixo resume as diferenças entre FastAPI e Flask:

FastAPI Flask
Validação de dados integrada. Não possui validação de dados.
Suporte a tarefas assíncronas. Não possui suporte a tarefas assíncronas.
Implementa especificações ASGI. Suporta aplicações WSGI.
Suporte automático a documentos. Suporte manual a documentos.
Mensagens de erro em JSON. Mensagens de erro em HTML.
Comunidade de suporte menor. Comunidade de suporte mais ampla.

FastAPI ou Flask: qual escolher?

Tanto FastAPI quanto Flask permitem configurar servidores web Python e aplicações de ciência de dados rapidamente. Ambos exigem esforço similar para implantação, mas qual é o melhor framework para o seu projeto?

O FastAPI é a melhor opção quando velocidade e desempenho são prioridade. Este framework é ideal para criar CDNs e lidar com tráfego significativo. O FastAPI oferece uma estrutura pronta para uso que economiza tempo e otimiza o processo de desenvolvimento.

O FastAPI é superior ao Flask na criação de APIs, especialmente ao considerar microsserviços. O Flask é mais adequado se você já possui ferramentas construídas em torno desse framework.

Conclusão

O FastAPI oferece velocidade e desempenho superiores, sendo ideal para a construção de redes de distribuição de conteúdo e para lidar com tráfego intenso. Seu framework inovador e modelo de projeto otimizam o tempo de desenvolvimento.

O Flask pode ser uma opção melhor para a criação de APIs, especialmente em microsserviços. Se você já utiliza o Flask extensivamente, ele pode ser a escolha mais adequada.

Além disso, você pode explorar outros frameworks Python populares para a criação de APIs.