FastAPI explicado em 5 minutos ou menos

FastAPI, uma estrutura Python que permite desenvolver APIs da Web, tem se tornado popular nos últimos anos.

API (Application Programming Interface) é a base da arquitetura moderna. Eles permitem que as aplicações sejam modularizadas e desacopladas. Isso permite que você crie aplicativos rapidamente e facilita sua manutenção.

Portanto, é uma boa ideia aprender FastAPI se você planeja usar o Python para desenvolver aplicativos da web. Este artigo ensinará tudo sobre os fundamentos do FastAPI.

O que é FastAPI?

FastAPI é uma estrutura da Web baseada em Python. Tem atraído muita atenção nos últimos anos. Sua estrutura de desenvolvimento é semelhante ao Flask, que foi a escolha mais popular para quem queria aprender desenvolvimento web em Python.

O FastAPI é simples de usar e sua documentação é clara e fácil de seguir. FastAPI é usado por gigantes da tecnologia como Microsoft, Netflix e Uber.

O FastAPI tem todos os recursos que você esperaria de um construtor de API, mas não está limitado a eles. Você pode usá-lo para montar o WSGI retrógrado, que a maioria dos usuários não conhece.

O objetivo principal do FastAPI é criar endpoints de API, como o nome sugere. Isso pode ser feito de forma tão eficiente quanto retornar dados do dicionário Python em JSON ou usar a IU Swagger interativa do OpenAPI.

FastAPI não se limita a APIs. Ele pode ser usado para quase tudo que uma estrutura da Web faz, desde a entrega de páginas da Web com o mecanismo de modelo Jinja2 até o fornecimento de aplicativos baseados em WebSockets.

Abaixo estão as vantagens do FastAPI:

  • FastAPI permite validar o tipo de dados do desenvolvedor, mesmo ao usar consultas JSON aninhadas.
  • Ele oferece o recurso de preenchimento automático, que permite criar aplicativos em menos tempo e com menos esforço.
  • É compatível com o vocabulário OpenAPI e JSON Schema, que permite validar e anotar documentos JSON.
  • FastAPI permite que você crie rapidamente uma API GraphQL usando uma biblioteca Python chamada graphene–python.
  • O FastAPI é compatível com OAuth 2.0, bem como com provedores externos.
  Como impedir que sua conta Disney + seja hackeada

Abaixo estão as desvantagens do FastAPI:

  • FastAPI ainda é uma nova estrutura, então há pouca comunidade de diretrizes. Não possui informações de educação externas suficientes, como livros, cursos ou tutoriais.
  • Como devemos unir todos os componentes no FastAPI, o arquivo principal pode ficar muito grande ou lotado.

Recursos exclusivos do FastAPI

Esses são os recursos exclusivos que tornam o FastAPI a estrutura da Web Python mais popular até hoje.

  • Alto desempenho: FastAPI tem mais desempenho do que outras estruturas python. A estrutura orientada para a velocidade do FastAPI o torna a melhor escolha. Tudo se resume a uma velocidade mais rápida e melhor desempenho, aproveitando os recursos do Starlette, criando APIs e produzindo códigos prontos.
  • Rápido para codificar: os desenvolvedores não precisam criar nada novo com códigos prontos para produção. Isso acelera o processo em aproximadamente 200% a 30%. O FastAPI é executado no Starlette e possui muitos outros recursos que podem ser usados ​​para criar APIs para validação e serialização de dados. A estrutura já possui todos os componentes necessários, reduzindo o tempo necessário para codificar.
  • Bugs mínimos: O framework possui uma função de preenchimento automático que insere automaticamente a maior parte do código na peça. Isso minimiza a possibilidade de erros e melhora a qualidade da saída.
  • Fácil de entender: FastAPI não faz nada, exceto Python moderno. É uma versão modificada do Python 3.6 e não contém nenhuma nova sintaxe. A estrutura pode ser usada por qualquer pessoa que entenda bem a linguagem.
  • Esforço mínimo: FastAPI gera documentação OpenAPI automaticamente com o mínimo de esforço do desenvolvedor. Essas informações podem ser encontradas no diretório/doc do aplicativo. A documentação contém informações detalhadas sobre terminais de API, códigos de retorno, parâmetros de resposta e outros detalhes.
  • Suporte ao editor: todos os componentes da estrutura são projetados com o preenchimento automático em mente. É simples, dando aos desenvolvedores a capacidade de produzir código pronto. Você também pode testar o código diretamente do seu navegador com a documentação interativa.
  • Padrões abertos: a estrutura da web Python do FastAPI é uma grande vantagem. O framework é compatível com OpenAPI, anteriormente conhecido como Swagger, que permite a criação de APIs.

Instalação FastAPI

Aqui estão as etapas simples para instalar o FastAPI no Linux ou Windows.

#1. Instalação FastAPI no Linux

Instale o Python 3 no Linux usando o comando abaixo:

sudo apt install python3

Instale o pip no Linux usando o comando abaixo:

sudo apt install python3-pip

Em seguida, instale FastAPI no Linux.

pip install fastapi

Você também precisará de um servidor ASGI. Então, instale o uvicorn usando pip.

pip install "uvicorn[standard]"

#2. Instalação FastAPI no Windows

Instale o Python 3 no Windows usando a loja da Microsoft. Isso também instalará o pip.

  Como remodelar matrizes NumPy em Python

Em seguida, instale FastAPI no Windows.

pip install fastapi

Finalmente, instale o servidor ASGI uvicorn.

pip install "uvicorn[standard]"

Usos da nova era do FastAPI

Aqui estão alguns usos da nova era do FastAPI:

Documentos automatizados

A documentação sobre tipos de API e endpoints é obrigatória. Esse problema pode ser resolvido usando OpenAPI, Swagger UI e ReDoc. Eles são empacotados automaticamente com FastAPI. Isso permite que você se concentre em seu código e não configure ferramentas.

Python Digitado

FastAPI usa declarações de tipo Python 3.6 (graças a Pydantic). Isso significa que ele usa um recurso do Python que permite especificar o tipo e o tipo de uma variável. Essa estrutura faz grande uso dele, oferecendo excelente suporte ao editor. O preenchimento automático funciona de maneira incrível.

Validação

A Pydantic já integra a validação nesta estrutura. A validação de tipos Python padrão e validações de campos personalizados podem ser feitas.

Segurança e Autenticação

Esta é uma parte importante de qualquer API. Freqüentemente, apenas repetimos o código, então por que não incorporar parte dele em nossa estrutura? FastAPI faz exatamente isso.

A biblioteca suporta HTTP Basic, tokens OAuth2 (tokens JWT) e chaves API de cabeçalho.

Natureza assíncrona

FastAPI, por padrão, oferece suporte a endpoints assíncronos, tornando seu código mais simples e eficiente. Esta é uma vantagem significativa sobre o Flask.

FastAPI vs. Flask: principais diferenças

Diferenças de uso

FastAPI, uma plataforma full-stack que fornece tudo o que você precisa para construir sua API, está disponível. O Flask, por outro lado, é um micro framework e não oferece todos os mesmos recursos do FastAPI. O Flask pode ser útil se você precisar prototipar uma ideia ou criar um aplicativo da web simples rapidamente.

Flask e FastAPI são muito diferentes na maneira como são usados. A estrutura Flask pode ser usada para prototipar novas ideias e aplicativos, enquanto a estrutura FastAPI pode ser usada para criar APIs. Você pode construir rapidamente um servidor de back-end usando-o sem nenhum conhecimento de codificação.

Sites e aplicativos da web de pequena escala

FastAPI é simples de usar, leve e pode ser usado para web em pequena escala e desenvolvimento de aplicativos. Ele inclui uma camada relacional de objeto (ORM), que lida com objetos de dados dentro do aplicativo, para que você possa acessá-los rapidamente por meio de codificação.

  Corrigir o Vizio Remote não está funcionando

A camada ORM acompanha seus bancos de dados e permite que você esqueça de atualizá-los manualmente quando novas informações são adicionadas, modificadas ou excluídas do site ou aplicativo.

WSGI x ASGI

Você deve ter notado uma diferença básica: Flask usa WSGI para sua interface padrão, enquanto FastAPI usa ASGI. Conforme mencionado anteriormente, o WSGI processa solicitações de forma síncrona. As solicitações são processadas sequencialmente. Não se pode começar até que a última tarefa seja concluída.

ASGI lida com solicitações de forma assíncrona. Isso permite que as tarefas sejam concluídas em seu próprio ritmo e não exige que esperem pelos outros.

Comunidade

Outra diferença é a comunidade. Flask é uma comunidade que existe há mais tempo que FastAPI. Isso significa ótima documentação e ajuda externa de outras pessoas que escrevem sobre o Flask.

O FastAPI ainda é um projeto novo, então a comunidade ainda precisa crescer tanto. Isso significa que, embora haja documentação suficiente, não há muita ajuda externa.

Abaixo está uma tabela resumida para FastAPI vs. Flask:

FastAPIFlaskA validação de dados é integrada.Não possui validação de dados.O suporte a tarefas assíncronas está disponívelO suporte a tarefas assíncronas não está disponívelImplementa especificações ASGISuporta aplicativos WSGISuporte automático a documentosSuporte manual a documentosA mensagem de erro é exibida no formato JSONA mensagem de erro é exibida em páginas HTMLSuporte à comunidade menorSuporte rico à comunidade

FastAPI ou Flask: qual você deve escolher?

FastAPI e Flask podem configurar rapidamente servidores web Python e aplicativos de ciência de dados. Ambos requerem o mesmo esforço para implantação, mas qual framework é melhor para seu próximo projeto?

FastAPI é a melhor opção quando a velocidade e o desempenho são mais importantes. Essa estrutura é melhor se você estiver criando uma CDN e esperando um tráfego significativo. O FastAPI permite que você baixe a estrutura e a use imediatamente. O modelo de projeto economizará seu tempo e ajudará você a economizar tempo.

FastAPI é uma opção melhor do que Flask quando você está construindo APIs. Isso é especialmente verdadeiro quando microsserviços e outras considerações são consideradas. O Flask é a melhor escolha se você já tiver muitas ferramentas construídas em torno dessa estrutura.

Conclusão

Então, isso era tudo sobre FastAPI. FastAPI oferece velocidade e desempenho superiores. Essa estrutura é a melhor se você estiver construindo sua rede de entrega de conteúdo e esperando tráfego. A estrutura inovadora e o modelo de projeto do FastAPI ajudarão você a economizar tempo.

Flask poderia ser melhor para criar APIs, particularmente microsserviços. FastAPI também é melhor que Flask. Flask é uma escolha melhor se você já o usa extensivamente.

Você também pode explorar alguns frameworks Python populares para criar APIs.