O que é FastAPI? \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 14 Horas 

 58 Min 

 00 Seg 

   Tempo restante da oferta: 14 58 00 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) O que é FastAPI?  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) [ Python ](https://www.treinaweb.com.br/blog/categoria/python) 

# O que é FastAPI?

 Neste artigo vamos falar um pouco sobre o funcionamento, história e quais as principais características do framework web FastAPI.

 [ Cleyson Lima ](https://www.treinaweb.com.br/blog/autor/cleyson-lima) 5 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/03/o-que-e-fastapi.png)  

Quando falamos de [frameworks](https://www.treinaweb.com.br/blog/para-que-serve-um-framework) para o desenvolvimento web no ecossistema [Python](https://www.treinaweb.com.br/blog/o-que-e-python) o primeiro nome que vem à cabeça é quase sempre [Django](https://www.treinaweb.com.br/blog/o-que-e-django) ou então o [Flask](https://www.treinaweb.com.br/blog/o-que-e-flask), porém o ecossistema Python é bem rico e possui muitos outros frameworks voltados para o desenvolvimento de API’s, um deles é o FastAPI, que é relativamente novo e que vem ganhando um número cada vez maior de entusiastas. Neste artigo vamos falar um pouco sobre o funcionamento e quais as características desse framework.

[  ![APIs Rest - Fundamentos](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/apis-rest.svg)   Curso APIs Rest - Fundamentos Conhecer o curso ](https://www.treinaweb.com.br/curso/apis-rest-fundamentos)

## O que é FastAPI?

O FastAPI é um framework Python focado no desenvolvimento de [API’s](https://www.treinaweb.com.br/blog/o-que-e-uma-api), tem como principais características ser moderno, rápido e simples. É um framework relativamente novo, teve a sua [primeira versão](https://github.com/tiangolo/fastapi/releases/tag/0.1.11) lançada no dia 15 de Novembro de 2018, mas não se engane, apesar de ser novo ele não é inferior aos outros frameworks que já estão no mercado há mais tempo, como o Django ou o Flask.

## Um pouco da história do FastAPI

O FastAPI foi desenvolvido e atualmente é mantido por [Sebastián Ramírez](https://github.com/tiangolo), o mesmo diz no próprio [site do framework](https://fastapi.tiangolo.com/alternatives/) que teve a ideia de criar o FastAPI a partir de algumas dificuldades encontradas ao utilizar os frameworks que existiam na época para realizar a tarefa de desenvolver API’s, além de que na maioria das vezes esses frameworks não possuíam o suporte para os recursos mais modernos do Python, como o recurso de type hints por exemplo.

[  ![Python - Fundamentos](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/python.svg)   Curso Python - Fundamentos Conhecer o curso ](https://www.treinaweb.com.br/curso/python-fundamentos)

## Principais características

Levando a motivação de criação do framework em consideração já dá para imaginar que ele toma vantagem dos recursos mais modernos disponibilizados pelo Python, outro ponto interessante é que justamente pelo fato de ser um framework recente ele pôde ser desenvolvido já levando em consideração os erros e acertos de outros frameworks que já estão no mercado há mais tempo.

Os principais recursos do FastAPI são:

- **Rápido**: API’s desenvolvidas com o FastAPI possuem uma alta performance, ao ponto de serem comparadas com API’s desenvolvidas com [Node.js](https://www.treinaweb.com.br/blog/node-js-por-que-voce-deve-conhecer-essa-tecnologia/) e Go. Inclusive é considerado um dos frameworks Python mais rápidos, perdendo apenas para o Starlette e o Uvicorn, que são frameworks utilizados internamente pelo FastAPI;
- **Intuitivo**: O código fonte do framework foi inteiramente desenvolvido utilizando o recurso de type hints do Python, isso possibilita que as [IDE’s](https://www.treinaweb.com.br/blog/o-que-e-uma-ide-ambiente-de-desenvolvimento-integrado) e [Editores de Código Fonte](https://www.treinaweb.com.br/blog/principais-editores-de-codigo-para-desenvolvimento) possuam um melhor intellisense, fazendo assim com que se gaste menos tempo debugando o código.
- **Fácil**: Foi inteiramente pensado para ser fácil de usar e aprender, fazendo assim com que se gaste bem menos tempo lendo a documentação.
- **Robusto**: O código desenvolvido já está pronto para produção, assim não precisamos fazer nenhuma alteração para então colocar as aplicações desenvolvidas no ar, além de que o FastAPI gera a documentação utilizando o Swagger e o OpenAPI de forma automática.

## Preparando nosso ambiente para usarmos o FastAPI

Agora vamos ver um exemplo simples de como se parece o código de uma aplicação desenvolvida com FastAPI, lembrando que o FastAPI precisa do Python pelo menos na versão 3.6.

Vou levar em consideração que você já possui o Python corretamente instalado em sua máquina, caso não, recomendo a leitura do artigo [Instalação do Python e nosso primeiro Olá Mundo](https://www.treinaweb.com.br/blog/instalacao-do-python-e-nosso-primeiro-ola-mundo), onde é mostrado todo o processo de instalação da linguagem.

Inicialmente vamos criar uma nova pasta e um ambiente virtual para que possamos isolar nosso ambiente de desenvolvimento da instalação global do Python, para isso execute os seguintes comandos no terminal:

```bash
mkdir exemplo-fastapi
cd exemplo-fastapi
python -m venv .venv

```

O primeiro comando serve para criar uma pasta chamada `exemplo-fastapi` que será a pasta do nosso projeto, logo em seguida utilizamos o comando `cd` para entrar nessa pasta e por fim utilizamos o comando `python -m venv .venv` para criar um novo ambiente virtual.

Agora que temos o nosso ambiente virtual criado nós precisamos ativa-lo, a ativação do ambiente virtual tende a mudar dependendo do seu sistema operacional, caso esteja utilizando Linux ou MacOS execute o seguinte comando:

```bash
source .venv/bin/activate

```

Caso esteja no Windows execute o seguinte comando:

```bash
.venv\Scripts\activate

```

Caso após a execução do comando acima tenha aparecido o texto `(.venv)` no seu terminal, significa dizer que deu tudo certo. Agora precisamos instalar o FastAPI e também iremos precisar de um servidor ASGI para podermos executar a aplicação, pois o FastAPI não possui um servidor integrado. Como servidor vamos utilizar o Uvicorn que é recomendado pela própria documentação.

Execute os comandos abaixo para realizar a instalação do FastAPI e do Uvicorn:

```bash
pip install fastapi
pip install uvicorn[standard]

```

[  ![Delphi - Criação de aplicações mobile](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/delphi.svg)   Curso Delphi - Criação de aplicações mobile Conhecer o curso ](https://www.treinaweb.com.br/curso/delphi-mobile-completo)

## Criando nossa primeira aplicação com FastAPI

Agora que já temos tudo instalado vamos criar o nosso exemplo, para isso abra a pasta `exemplo-fastapi` na IDE ou Editor de Código Fonte de sua sua preferência e crie um novo arquivo chamado `main.py` com o seguinte código:

```python
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def home():
    return {"mensagem": "Hello World"}

```

Para quem já está familiarizado com o Flask vai notar algumas semelhanças, mas como disse o FastAPI se baseou nos erros e acertos de outras frameworks e do Flask o FastAPI se inspirou justamente na simplicidade.

Agora para rodarmos a aplicação basta executar o comando:

```bash
uvicorn main:app --reload

```

Agora você pode abrir o seu navegador no endereço http://localhost:8000/ e verá o seguinte resultado:

![Print do navegador demonstrando a execução da aplicação desenvolvida em FastAPI](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/03/execucao-codigo-fastapi.png)

Além de ser super fácil de criarmos nossas rotas e retornamos dados do tipo JSON, o FastAPI também gera toda uma documentação utilizando o OpenAPI de forma automática, para ver essa documentação acesse o endereço http://localhost:8000/docs e você verá a documentação da API fornecida pelo Swagger UI.

![Print da documentação com Swagger UI gerada de forma automática pelo FastAPI](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/03/swaggerui-gerado-pelo-fastapi.png)

Além da documentação com o Swagger UI o FastAPI também disponibiliza uma documentação alternativa através da ferramenta ReDoc, para visualizar essa outra documentação acesse http://localhost:8000/redoc e você verá o seguinte resultado:

![Print da documentação com ReDoc gerado de forma automática pelo FastAPI](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/03/redoc-gerado-pelo-fastapi.png)

## Conclusão

Neste artigo vimos um pouco sobre o que é e qual a história do FastAPI, é um framework muito interessante, que possui diversos recursos modernos e que vem ganhando bastante popularidade nos últimos anos e essa popularidade só tende a crescer, caso queira aprender mais sobre o FastAPI recomendo ler a documentação do framework, que é muito boa e recheada de exemplos.

- [ #API ](https://www.treinaweb.com.br/blog/tag/api)
- [ #REST ](https://www.treinaweb.com.br/blog/tag/rest)
- [ #Python ](https://www.treinaweb.com.br/blog/tag/python)
- [ #desenvolvimento web ](https://www.treinaweb.com.br/blog/tag/desenvolvimento-web)
- [ #FastAPI ](https://www.treinaweb.com.br/blog/tag/fastapi)

Autor

 ![Cleyson Lima](//secure.gravatar.com/avatar/db30efb102ffa5d5204cebe12060b111?d=mm)

## Cleyson Lima

 Professor, programador, fã de One Piece e finge saber cozinhar. Cleyson é graduando em Licenciatura em Informática pelo IFPI - Campus Teresina Zona Sul, nos anos de 2019 e 2020 esteve envolvido em vários projetos coordenados pela secretaria municipal de educação da cidade de Teresina, onde o foco era introduzir alunos da rede pública no mundo da programação e robótica. Hoje é instrutor dos cursos de Spring na TreinaWeb, mas diz que seu coração sempre pertencerá ao Python. 

 [Todos os artigos](https://www.treinaweb.com.br/blog/autor/cleyson-lima)  

## Continue estudando

 Transforme leitura em prática com os cursos e formações da TreinaWeb.

 [Ver cursos](https://www.treinaweb.com.br/cursos)   

  Continue lendo

## Artigos relacionados

- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/03/o-que-e-fastapi-400x280.png)  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

     4 anos atrás

    ##  [ Criando o primeiro CRUD com FastAPI ](https://www.treinaweb.com.br/blog/criando-o-primeiro-crud-com-fastapi) 

     Neste artigo nós iremos aprender um pouco mais sobre o FastAPI durante o desenvolvimento de uma API com todas as operações de CRUD.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2018/08/07161700/gerenciamento-python-400x280.png)  [ Python ](https://www.treinaweb.com.br/blog/categoria/python) 

     4 anos atrás

    ##  [ Empacotando e publicando pacotes Python no PyPi ](https://www.treinaweb.com.br/blog/empacotando-e-publicando-pacotes-python-no-pypi) 

     Neste artigo iremos aprender como funciona o processo de empacotar e distribuir nossos próprios pacotes Python no PyPi.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2024/04/sistemas-mensageria-min-400x280.png)  [ Arquitetura de Software ](https://www.treinaweb.com.br/blog/categoria/arquitetura-de-software) 

     3 anos atrás

    ##  [ O que é e quais as diferenças entre Kafka, RabbitMQ e AWSSQS ](https://www.treinaweb.com.br/blog/o-que-e-e-quais-as-diferencas-entre-kafka-rabbitmq-e-awssqs) 

     Confira nesse artigo o que são sistemas de mensageria, o que são e quais as diferenças entre Kafka, RabbitMQ e AWSSQS.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/12/TS-ZOD-400x280.jpg)  [ Javascript ](https://www.treinaweb.com.br/blog/categoria/javascript) 

     3 anos atrás

    ##  [ O que é o Zod? ](https://www.treinaweb.com.br/blog/o-que-e-o-zod) 

     Neste artigo vamos ter uma introdução sobre o Zod, uma biblioteca de declaração e validação de dados em TypeScript e criar um exemplo de como utilizá-la.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/11/Clean-Architecture-400x280.png)  [ Arquitetura de Software ](https://www.treinaweb.com.br/blog/categoria/arquitetura-de-software) 

     3 anos atrás

    ##  [ O que vem a ser a Clean Architecture? ](https://www.treinaweb.com.br/blog/o-que-vem-a-ser-a-clean-architecture) 

     Confira nesse artigo uma introdução do que é a Clean Architecture, quais seus componentes e os benefícios ao utilizar essa arquitetura.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/08/code-review-400x280.png)  [ Engenharia de Software ](https://www.treinaweb.com.br/blog/categoria/engenharia-de-software) 

     3 anos atrás

    ##  [ O que é code review e quais são os benefícios? ](https://www.treinaweb.com.br/blog/o-que-e-code-review-e-quais-sao-os-beneficios) 

     Confira neste artigo o que vem a ser o code review e quais são os benefícios de colocar isso em prática no seu time.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/05/closure-400x280.jpg)  [ Desenvolvimento ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento) 

     4 anos atrás

    ##  [ O que é Closure ](https://www.treinaweb.com.br/blog/o-que-e-closure) 

     Neste artigo, veremos o que é Closure e por que é tão importante entendê-lo para saber o que acontece por debaixo dos panos na linguagem.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/02/CSS-JS-400x280.jpg)  [ CSS ](https://www.treinaweb.com.br/blog/categoria/css) 

     4 anos atrás

    ##  [ O que é PostCSS e suas funcionalidades ](https://www.treinaweb.com.br/blog/o-que-e-postcss-e-suas-funcionalidades) 

     Neste artigo veremos uma ferramenta que vem auxiliando muito os desenvolvedores durante seus projetos, sendo ela, PostCSS.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/12/BFF-400x280.jpg)  [ Arquitetura de Software ](https://www.treinaweb.com.br/blog/categoria/arquitetura-de-software) 

     4 anos atrás

    ##  [ O que é BFF? ](https://www.treinaweb.com.br/blog/o-que-e-bff) 

     Conheça neste artigo o pattern arquitetural BFF (Backend For Frontend).

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/11/O-QUE-E-HTML-400x280.jpg)  [ Desenvolvimento Front-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-front-end) 

     4 anos atrás

    ##  [ O que é HTML? ](https://www.treinaweb.com.br/blog/o-que-e-html) 

     No artigo de hoje, será abordado o tema HTML, nele irá conter desde sua história, quem o criou e como deve ser montada sua estrutura.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/10/o-que-e-e-como-comecar-com-golang-400x280.jpg)  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

     4 anos atrás

    ##  [ O que é e como começar com Go (Golang)? ](https://www.treinaweb.com.br/blog/o-que-e-e-como-comecar-com-golang) 

     Neste artigo vamos ter o contato inicial com a linguagem Go (Golag) e aprender um pouco sobre as suas características e como funciona a sua sintaxe.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2022/09/EVENT-STORMING-400x280.jpg)  [ Arquitetura de Software ](https://www.treinaweb.com.br/blog/categoria/arquitetura-de-software) 

     4 anos atrás

    ##  [ O que é o Event Storming? ](https://www.treinaweb.com.br/blog/o-que-e-o-event-storming) 

     Em situações complexas, pode ser complicado enxergar as fronteiras entre domínios, subdomínios e bounded contexts. Para auxiliar nessa missão, existe uma técnica que pode ser utilizada: trata-se do Event Storming.

     Ler artigo

## Um ano de acesso total para você viver de programação.

 Todos os cursos e formações da TreinaWeb numa única assinatura, com professores que atuam no mercado, suporte direto e certificados. Do primeiro `console.log` ao mercado de trabalho.

- **1 ano** de acesso a **todos os cursos**
- Cursos novos **toda semana**
- Suporte **direto com professores**
- Plano de carreira **personalizado**
- **Certificados digitais** inclusos
- **Aplicativos** para Android e iOS, com **acesso offline**

    **Garantia incondicional de satisfação** 

 Teste por 7 dias e, se não fizer sentido para você, devolvemos seu dinheiro.

### Acesso completo a todos os cursos e dezenas de Formações.

 12 meses 

  Economize R$ 840,00  54% OFF 

 de 12x R$ 129,00 por apenas

 12x  R$ 59,00

 sem juros no cartão de crédito ou R$ 599,00 à vista

  Oferta termina em  **14h 58min 00s**

- Acesso imediato e ilimitado durante 1 ano.
- Plano de carreira personalizado.
- Suporte direto com professores.
- E muito mais!

 [Matricule-se agora](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26)

     [                ](https://www.treinaweb.com.br)

 Escola online de programação, tecnologia e IA.

- [  ](https://www.facebook.com/TreinaWeb/)
- [  ](https://www.instagram.com/treinaweb/)
- [  ](https://www.youtube.com/user/TreinaWeb)
- [  ](https://twitter.com/treinaweb)
- [  ](https://www.linkedin.com/company/treinaweb)
- [  ](https://github.com/treinaweb)

## Inscreva-se em nossa newsletter

Receba lançamentos, promoções e novidades.

   Seu nome     Seu WhatsApp     Seu melhor e-mail   Inscrever-se 

## Cursos

- [ Base para Devs ](https://www.treinaweb.com.br/categoria/base-para-devs)
- [ Front-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-front-end)
- [ Back-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-back-end)
- [ Mobile ](https://www.treinaweb.com.br/categoria/desenvolvimento-mobile)
- [ Bancos de Dados ](https://www.treinaweb.com.br/categoria/bancos-de-dados)
- [ Cloud ](https://www.treinaweb.com.br/categoria/cloud-computing)
- [ IA ](https://www.treinaweb.com.br/categoria/ia)
- [ E mais ](https://www.treinaweb.com.br/categoria/e-mais)
- [ Ver todos os cursos ](https://www.treinaweb.com.br/cursos)

## Conteúdo

- [ Formações ](https://www.treinaweb.com.br/formacoes)
- [ Projetos práticos ](https://www.treinaweb.com.br/projetos-praticos)
- [ Direto ao ponto ](https://www.treinaweb.com.br/direto-ao-ponto)
- [ Planos ](https://www.treinaweb.com.br#assinatura)
- [ Depoimentos ](https://www.treinaweb.com.br#depoimentos)
- [ Comunidade ](https://www.treinaweb.com.br#comunidade)
- [ Corpo docente ](https://www.treinaweb.com.br#docente)

## A empresa

- [ Sobre a TreinaWeb ](https://www.treinaweb.com.br#sobre)
- [ Perguntas frequentes ](https://www.treinaweb.com.br#faq)
- [ Vantagens de estudar na TreinaWeb ](https://www.treinaweb.com.br/vantagens-de-estudar-na-treinaweb)
- [ Cursos para empresas ](https://www.treinaweb.com.br/empresas)
- [ Sugira um novo curso ](https://www.treinaweb.com.br/sugerir-curso)
- [ Trabalhe conosco ](https://www.treinaweb.com.br/trabalhe-conosco)
- [ Artigos ](https://www.treinaweb.com.br/blog)
- [ Desenvolvedores e agentes ](https://www.treinaweb.com.br/developers)
- [ Contato ](https://www.treinaweb.com.br/contato)
- [ Política de privacidade ](https://www.treinaweb.com.br/politica-de-privacidade)
- [ Termos de uso ](https://www.treinaweb.com.br/termos-de-uso)

## Baixe nosso aplicativo

 [   Disponível na **App Store**  ](https://apps.apple.com/us/app/treinaweb/id1322729447) [   Disponível no **Google Play**  ](https://play.google.com/store/apps/details?id=br.com.treinaweb.mobile) 

  Av. Paulista, 1765, Conj 71 e 72 · Bela Vista · São Paulo · SP · 01311-200   © 2004 – 2026 TreinaWeb Tecnologia LTDA · CNPJ 06.156.637/0001-58
